zoukankan      html  css  js  c++  java
  • 使用Pods中使用Swift和Objective-C混编-编译不通过的原因

    iOS开发#使用Pods中使用Swift和Objective-C混编-编译不通过的原因-ld: symbol(s) not found for architecture arm64

    问题基本描述 在Pods管理的Objective-C中导入Swift过程中出现问题
    项目中需要展示报表,而使用的第三方(Charts)是Swift编写的,而我的项目中使用的是Objective编写的,这就涉及混编的问题,虽然现在的混编很成熟了,但是不注意细节的话还是会出现问题!今天就在使用Pods导入Swift编写的第三方库时出了问题

    问题展示 -- Objective-C项目使用Pods(应该Carthage也会出现)导入第三方Swift库时出现的问题

    ld: warning: Could not find auto-linked library 'swiftCoreGraphics'
    ld: warning: Could not find auto-linked library 'swiftFoundation'
    ld: warning: Could not find auto-linked library 'swiftMetal'
    ld: warning: Could not find auto-linked library 'swiftDarwin'
    ld: warning: Could not find auto-linked library 'swiftUIKit'
    ld: warning: Could not find auto-linked library 'swiftObjectiveC'
    ld: warning: Could not find auto-linked library 'swiftCoreFoundation'
    ld: warning: Could not find auto-linked library 'swiftDispatch'
    ld: warning: Could not find auto-linked library 'swiftCoreImage'
    ld: warning: Could not find auto-linked library 'swiftQuartzCore'
    ld: warning: Could not find auto-linked library 'swiftCore'
    ld: warning: Could not find auto-linked library 'swiftSwiftOnoneSupport'
    省略。。。。
    ld: symbol(s) not found for architecture arm64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    

    遇见问题的原因

    一般人在Objective-C项目和Swift混编时,会创建桥接文件:项目名-Bridging-Header.h .
    在Objective-C项目中新建Swift文件时会自动提示是否创建桥接文件,点击蓝色按钮同意就行了.
    而出现这个问题的原因是,桥接文件创建成功之后我把我创建的Swift文件给删除了(因为个人认为用不到),如是就提示上面的警告,并且编译不通过。
    

    解决方法

    创建桥接完成时如果项目中没有Swift文件时,请创建-PS:Pods中的Swift不算
    如果没有Swift文件时请创建一个,空文件就行
    
  • 相关阅读:
    面条代码 vs. 馄沌代码
    GraphQL 到底怎么用?看看这个例子就知道了
    程序员难逃二八法则,如何晋升为头部 20% 玩家?
    正则匹配负正数和负小数
    js、Jquery处理自动计算的输入框事件
    mobile easyui兼容实体数据(tree插件为例)
    framework7中一行的字如果过多就省略号显示的CSS写法
    PHP获取系统时间不对的解决办法(转载)
    BZOJ 3156: 防御准备
    P4098 [HEOI2013]ALO
  • 原文地址:https://www.cnblogs.com/Lanht/p/11671113.html
Copyright © 2011-2022 走看看