【发布时间】:2016-03-26 23:16:38
【问题描述】:
我有 Xcode 5.1.1,并正在尝试创建一个项目来构建我的 OSX 应用程序。
应用结构如下:
我有一个静态链接库 (.a)、2 个动态链接库 (.dylib),它依赖于静态链接库、1 个动态链接库 (.dylib),它依赖于这 2 个动态库和使用那 1 个动态库 (.dylib)。
在 Xcode 中,我通过转到“Xcode ->Preferences->Derived Data (Advanced)”更改了输出目录。在那里我选择了“自定义->相对于工作区”。这样,所有内容都将保存在一个地方。
现在的问题是:我在将“.a”库添加到“.dylib”之一时遇到了困难。
我在 Xcode 窗口的左上角选择了一个目标,以便显示构建属性。然后在“搜索”窗口中输入“其他链接器标志”。然后我在“构建设置窗口”中选择“其他链接器标志”并输入“-ldbinterface.a”。尝试编译时出现错误:“ld: library not found for -llibdbinterface.a”。
接下来我尝试添加以下行:“-L/Users/igorkorot/dbhandler/dbhandler/Build/Products/Debug”到“Other Linker Flags”。但我得到了完全相同的错误。
接下来,我尝试删除这两行并将“libdbinterface.a”添加到“其他链接器标志”中。这次我得到:“clang:错误:没有这样的文件或目录”。
作为参考,该文件确实存在:
Igors-MacBook-Air:Debug igorkorot$ pwd
/Users/igorkorot/dbhandler/dbhandler/Build/Products/Debug
Igors-MacBook-Air:Debug igorkorot$ ls -la
total 384
drwxr-xr-x 3 igorkorot staff 102 Mar 26 18:37 .
drwxr-xr-x@ 3 igorkorot staff 102 Mar 26 18:36 ..
-rw-r--r-- 1 igorkorot staff 193528 Mar 26 18:37 libdbinterface.a
我做错了什么?在我的情况下添加静态库的正确方法是什么?
谢谢。
【问题讨论】:
标签: c++ xcode static-libraries static-linking