我将混合语言框架链接到项目时遇到问题.
1)我使用Swift和Objective-C类创建框架.
2)主逻辑存储在Swift文件中.例如,带有调用NSLog的方法的类("调用Swift日志").
3)Objective-C文件有一个类,它有一个方法,我创建一个Swift类的实例并调用Swift-log方法.
4)我将此框架与我的Objective-C项目相关联,我可以在此项目中调用我需要的所有内容,但是当我想构建此项目时,我收到错误" linker command failed with exit code 1 (use -v to see invocation)"
并警告:
ld: warning: Could not find auto-linked library 'swiftFoundation'
ld: warning: Could not find auto-linked library 'swiftDarwin'
ld: warning: Could not find auto-linked library 'swiftCoreFoundation'
ld: warning: Could not find auto-linked library 'swiftCore'
ld: warning: Could not find auto-linked library 'swiftCoreGraphics'
ld: warning: Could not find auto-linked library 'swiftObjectiveC'
ld: warning: Could not find auto-linked library 'swiftDispatch'
ld: warning: Could not find …
我需要为我的要求制作swift静态库.我制作了swift静态库,它使用swift和Obj-c代码.我通过桥文件包含了Obj-c文件.我能够编译swift静态库而不会出现任何错误,并获取libMySwift.a文件.我使用Xcode9.3和Swift4来编译库.
我在obj-c项目中包含了libMySwift.a,还包含了obj-c兼容的头文件来访问项目中的lib.当我尝试编译项目时,它会给出以下警告和200多个错误.
Auto-Linking library not found for -lswiftSwiftOnoneSupport
Auto-Linking library not found for -lswiftCore
Auto-Linking library not found for -lswiftQuartzCore
Auto-Linking library not found for -lswiftCoreImage
Auto-Linking library not found for -lswiftCoreGraphics
Auto-Linking library not found for -lswiftObjectiveC
Auto-Linking library not found for -lswiftDispatch
Auto-Linking library not found for -lswiftMetal
Auto-Linking library not found for -lswiftFoundation
Auto-Linking library not found for -lswiftUIKit
Auto-Linking library not found for -lswiftDarwin
Auto-Linking library not found for -lswiftCoreFoundation
Run Code Online (Sandbox Code Playgroud)
如果我遗漏任何步骤或需要添加任何内容,请告诉我.
我已经分叉了一个叫做BTNavigationDropdownMenu(iOS的swift项目)的框架。一切正常,直到我尝试在我创建的分支中向最新版本添加依赖项。无论我是DYBadge通过podfile还是通过添加其他框架(),问题都是相同的Carthage。
找不到自动链接框架DYBadge。
的UIView扩展名似乎有问题DYBadge。
DYBadge 在我正在使用的主应用程序中工作正常(我在应用程序目标中也需要它)。
错误如下。感谢您对正确方向的任何提示。
ld:警告:找不到自动链接框架DYBadge架构x86_64的未定义符号:“(在DYBadge中扩展):__ ObjC.UIView.getBadge()-> DYBadge.DYBadge?”,引用自:Demo.BTNavigationDropdownMenu.updateBadge(text: Swift.String,位于:BTNavigationDropdownMenu.o中的Swift.Int)->()ld:找不到架构x86_64铛的符号:错误:链接器命令失败,退出代码为1(使用-v查看调用)