链接和Xcode犰狳(Linking armadillo with Xcode)

2019-07-17 18:58发布

我有一个大现有的Xcode项目,现在我想犰狳库添加到它。

http://arma.sourceforge.net/

我已经下载了它(与MacPorts的),并得到了它使用cmake(就像C ++端APP)工作。 我不使用cmake我的大型项目(iPad版),所以我试图链接库。 我看了看,我得到了与CMake的工作Xcode的项目文件,并添加了相同的到我的项目。

补充:头搜索路径中:/ opt /本地/包括库搜索路径中:/ opt / local / lib目录其他连接器选项:-larmadillo

我还添加了libarmadillo.3.4.0.dylib到“链接库与二进制”

    ld: warning: ld: warning: ignoring file /opt/local/lib/libarmadillo.3.4.0.dylib, file was built for unsupported file format ( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 6 0x 0 0x 0 0x 0 ) which is not the architecture being linked (armv7s): /opt/local/lib/libarmadillo.3.4.0.dylibld: warning: ignoring file /opt/local/lib/libarmadillo.dylib, file was built for unsupported file format ( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 6 0x 0 0x 0 0x 0 ) which is not the architecture being linked (armv7s): /opt/local/lib/libarmadillo.dylib
    ignoring file /opt/local/lib/libz.dylib, file was built for unsupported file format ( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 6 0x 0 0x 0 0x 0 ) which is not the architecture being linked (armv7s): /opt/local/lib/libz.dylib

    Undefined symbols for architecture armv7s:
      "_deflateInit_", referenced from:
  _compress_data in libTestFlight.a(tf_compression.o)
      "_deflateEnd", referenced from:
  _compress_data in libTestFlight.a(tf_compression.o)
      "_deflate", referenced from:
  _compress_data in libTestFlight.a(tf_compression.o)
    ld: symbol(s) not found for architecture armv7s
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

任何想法我怎么能解决这个问题?

Answer 1:

尝试libz.lib添加到您的构建目标:

添加libz进行到您的链接二进制与图书馆建设阶段

  1. 选择在Project Navigator的项目
  2. 选择目标要启用的SDK
  3. 选择构建阶段选项卡
  4. 打开链接二进制与图书馆相
  5. 点击+添加新的库
  6. 在列表中找到libz.dylib,并将其添加
  7. 重复步骤2 - 6直到您希望使用具有libz.dylib SDK的所有目标

来源: https://testflightapp.com/sdk/doc/1.1/



Answer 2:

我最近有一个类似的问题 - 链接犰狳和Xcode。

我会告诉你我是如何解决它。 两个步骤是必要的:

1)xcode中需要“看到”文件libarmadillo.dylib (矿,位于/usr/lib/ ) -它是不一样的使用libarmadillo.3.81.1.dylib直接。

为了做到这一点,创建的Xcode库的链接文件(矿,位于/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/lib/ )。

总结: $ sudo ln -s /usr/lib/libarmadillo.dylib /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/lib/libarmadillo.dylib

2)我现在需要“告诉” Xcode中包括编译命令这个库。

为了那个原因:

  1. 打开项目(请确保你做到这一点创建上述链接后)
  2. 去的TARGETS (我只有一个所以...)
  3. 点击Build Phases选项卡
  4. 找到“链接二进制与图书馆”,然后单击+(添加项)
  5. 在新打开的窗口型armadillo和现在你应该看到库libarmadillo.dylib在你的面前,只是将它加入!

用PS在头文件,它们的犰狳,我把它使用的完整路径(在我的情况下, #include "/usr/include/armadillo"

这就是它,我希望我可以帮助你。



文章来源: Linking armadillo with Xcode