在子项目

时间:2015-04-29 10:12:36

标签: ios cordova duplicate-symbol

我在向xcode子项目共享静态库时遇到问题。 假设我的项目结构是这样的:

Main.xcodeproj
|
|_Cordova.xcodeproj
|
|_SubProject1.xcodeproj
|
|_SubProject2.xcodeproj

我为:

创建了静态库
  • SubProject1
  • SubProject2

这些库需要与Cordova静态库链接。

我是通过以下方式完成的:

  • 打开SubProject1
  • 在“Link Binary With Libraries”部分中添加Cordova静态库

然后

  • 打开SubProject2
  • 在“Link Binary With Libraries”部分中添加Cordova静态库

之后,

  • 打开Main.xcodeproj
  • 为SubProject1添加目标Depedendency
  • 为SubProject2添加目标Depedendency
  • 为SubProject1静态库添加链接二进制文件库
  • 为SubProject2静态库添加链接二进制文件库

如果我构建我获得以下错误:

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)

如何在这两个子项目中共享此库?

非常感谢

1 个答案:

答案 0 :(得分:1)

没有必要将两个SubProjects与Cordova链接,您只需将主要目标链接到Cordova。