繁体   English   中英

XCode-C ++静态和动态库链接

[英]XCode - C++ Static & Dynamic library linking

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

对于静态链接,我做了以下工作:1.进入构建阶段,使用库链接二进制文件,选择静态.a库2.进入“ Build”设置,并将Header Search路径修改为头文件目录3.将Library搜索路径修改为静态库目录。

我编译了程序,它可以工作。

然后,我尝试进行动态链接。1.进入构建阶段,使用库链接二进制文件,删除了静态.a库,并添加了.dylib库(它们位于同一目录中)。2.尝试编译-但是我正在使用“库”未加载:@ loader_path /(库名称).dylib。原因:未找到图像”。

我是否错过其中一条路? 我究竟做错了什么?

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

  1. 确保动态库与静态库不在同一目录中。 这造成了冲突。 我创建了一个单独的目录,并将所有需要的动态库复制到该目录
  2. 去构建阶段,将二进制文件与库链接,选择我需要的动态库
  3. 进行构建设置,并将标题搜索路径修改为标题文件目录
  4. 将库搜索路径修改为动态库目录。

通过(菜单)产品->方案->编辑方案创建环境变量。 在“环境变量”下,创建一个“ DYLD_LIBRARY_PATH”变量,并将其指向我的动态库目录。

有用 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM