在子项目上共享静态库时重复符号 IOS
Duplicate Symbols IOS when sharing static Library on sub projects
我在与 xcode 子项目共享静态库时遇到问题。
假设我的项目结构是这样的:
Main.xcodeproj
|
|_Cordova.xcodeproj
|
|_SubProject1.xcodeproj
|
|_SubProject2.xcodeproj
我已经为以下对象创建了静态库:
- 子项目 1
- 子项目2
这些库需要与 Cordova 静态库链接。
我是通过以下方式完成的:
- 打开子项目 1
- 在"Link Binary With Libraries"部分添加Cordova静态库
然后
- 打开子项目 2
- 在"Link Binary With Libraries"部分添加Cordova静态库
之后,
- 打开了Main.xcodeproj
- 为 SubProject1 添加目标依赖关系
- 为 SubProject2 添加目标依赖关系
- 为 SubProject1 静态库添加 Link 带库的二进制文件
- 为 SubProject2 静态库添加 Link 带库的二进制文件
如果我构建我得到以下错误:
duplicate symbol _OBJC_IVAR_$_CDVViewController._commandQueue in:
/Users/xxx/Library/Developer/Xcode/DerivedData/appxxx/Build/Products/Debug-iphonesimulator/libSubProject1.a(CDVViewController.o)
/Users/xxx/Library/Developer/Xcode/DerivedData/appxxx/Build/Products/Debug-iphonesimulator/libSubProject2.a(CDVViewController.o)
duplicate symbol _OBJC_IVAR_$_CDVViewController._commandDelegate in:
/Users/xxx/Library/Developer/Xcode/DerivedData/appxxx/Build/Products/Debug-iphonesimulator/libSubProject1.a(CDVViewController.o)
/Users/xxx/Library/Developer/Xcode/DerivedData/appxxx/Build/Products/Debug-iphonesimulator/libSubProject2.a(CDVViewController.o)
如何在这两个子项目之间共享这个库?
非常感谢
不需要 link 两个子项目都使用 Cordova,您可以 link 将主要目标 link Cordova。
我在与 xcode 子项目共享静态库时遇到问题。 假设我的项目结构是这样的:
Main.xcodeproj
|
|_Cordova.xcodeproj
|
|_SubProject1.xcodeproj
|
|_SubProject2.xcodeproj
我已经为以下对象创建了静态库:
- 子项目 1
- 子项目2
这些库需要与 Cordova 静态库链接。
我是通过以下方式完成的:
- 打开子项目 1
- 在"Link Binary With Libraries"部分添加Cordova静态库
然后
- 打开子项目 2
- 在"Link Binary With Libraries"部分添加Cordova静态库
之后,
- 打开了Main.xcodeproj
- 为 SubProject1 添加目标依赖关系
- 为 SubProject2 添加目标依赖关系
- 为 SubProject1 静态库添加 Link 带库的二进制文件
- 为 SubProject2 静态库添加 Link 带库的二进制文件
如果我构建我得到以下错误:
duplicate symbol _OBJC_IVAR_$_CDVViewController._commandQueue in:
/Users/xxx/Library/Developer/Xcode/DerivedData/appxxx/Build/Products/Debug-iphonesimulator/libSubProject1.a(CDVViewController.o)
/Users/xxx/Library/Developer/Xcode/DerivedData/appxxx/Build/Products/Debug-iphonesimulator/libSubProject2.a(CDVViewController.o)
duplicate symbol _OBJC_IVAR_$_CDVViewController._commandDelegate in:
/Users/xxx/Library/Developer/Xcode/DerivedData/appxxx/Build/Products/Debug-iphonesimulator/libSubProject1.a(CDVViewController.o)
/Users/xxx/Library/Developer/Xcode/DerivedData/appxxx/Build/Products/Debug-iphonesimulator/libSubProject2.a(CDVViewController.o)
如何在这两个子项目之间共享这个库?
非常感谢
不需要 link 两个子项目都使用 Cordova,您可以 link 将主要目标 link Cordova。