XCode - C ++ Static&动态库链接

时间:2017-11-13 09:28:39

标签: c++ xcode clang dynamic-linking

我通过在XCode上静态链接外部库来编译程序。但是,我在如何动态链接这些库时遇到错误。

对于静态链接,我做到了 1.去构建阶段,将二进制文件链接到库,选择静态.a库 2.去构建设置并将标题搜索路径修改为标题文件目录 3.修改了库搜索路径到静态库目录。

我编译了程序,但它确实有效。

然后我尝试动态链接 1.去构建阶段,将二进制文件链接到库,删除静态.a库并添加.dylib库(它们位于同一目录中) 2.尝试编译 - 但我得到'库未加载:@ loader_path /(lib name).dylib ..原因:图像未找到'。

我错过了其中一条路径吗?我做错了什么?

1 个答案:

答案 0 :(得分:0)

通过添加DYLD_LIBRARY_PATH环境变量来解决它。

  1. 确保动态库与静态库不在同一目录中。这造成了冲突。我创建了一个单独的目录,并将我需要的所有动态库复制到该目录
  2. 去构建阶段,将二进制文件链接到库,选择我需要的动态库
  3. 去构建设置并将标题搜索路径修改为标题文件目录
  4. 修改了库搜索路径到动态库目录。
  5. 通过(菜单)产品创建环境变量 - >方案 - >编辑方案。在'Environment Variables'下,创建了一个'DYLD_LIBRARY_PATH'变量并将其指向我的动态库目录。

    有效:)