我正在尝试编译一个简单的Boost Wave示例,当Xcode识别标题时,它给了我一大堆Apple Mach-O Linker(Id)错误。我以前遇到过这个,我不记得我是怎么解决的。请帮忙!
我附上了截图。
P.S。我有Boost 1.57.0,它适用于任何Xcode项目。无论出于何种原因,它都不是在涉及标题boost / wave.hpp的情况下......如此......
#include <boost/wave.hpp>
另外,我排除了代码的主体作为罪魁祸首。这会引发链接器错误:
#include <boost/wave.hpp>
int main() { return 0; }
其他像这样的Boost标题,请不要:
#include <boost/function.hpp>
int main() { return 0; }
答案 0 :(得分:1)
答案 1 :(得分:0)
嗯,解释很简单。为了能够构建您的项目,在底层工作的编译器需要知道:
在项目文件中搜索 #include&lt; ..&gt; 的位置:这对应于g ++编译器的 -I 目录选项。在Xcode中,这对应于在项目的“构建设置”中设置“标题搜索路径”。 如果没有指定标题搜索路径,您将在 #include 行中出现错误,因为Xcode不知道在哪里查找这些包含的文件。
在构建项目时,搜索必须链接到源代码的库的位置:这对应于g ++编译器的 -L 目录选项。在Xcode中,这对应于在项目的“构建设置”中设置“库搜索路径”。 如果没有指定**库搜索路径**,则在尝试构建项目时会出现错误,因为Xcode不知道在哪里查找链接库。
在编译时必须将哪些库链接到项目文件:这对应于g ++编译器的 -l </ strong>链接选项。 在Xcode中,这对应于将 .dylib 文件添加到项目的Build Phases设置中的 Link Binary With Libraries 。请注意,您无需手动将库添加到项目的主文件夹中,最后描述的步骤就足够了。