问题链接到我自己的静态库

时间:2014-05-14 17:34:08

标签: c++ xcode5

我正在开发一个涉及构建三个不同可执行文件的项目。我认为我不会创建三个独立的Xcode项目,而是将所有源代码保存在一个项目中,并为二进制文件使用不同的目标。它们都碰巧需要相同的源文件集(一个用C编写的加密库),并且我已经为它们添加了一个静态库目标,它似乎能够很好地编译它们。

我的问题是,我正在处理其中一个可执行文件,并尝试与该库链接,我一直在获取未找到的架构x86_64"" ld:符号。错误。我已经编译了库并将其添加到" Target Dependencies"," Link Binary with Libraries"和" Copy Headers" (或者相关的标题,无论如何)在相关目标的构建阶段设置中。 Xcode让我包含了库(只是" encryption.h")但是构建失败了。有什么建议?我对使用Xcode进行C ++开发比较陌生,所以我可能会错过一些明显的东西。

1 个答案:

答案 0 :(得分:0)

这里可能会发生一些问题。

首先,确保" x86_64"已在库构建设置中设置。

您的构建设置应如下所示:

make certain of 64-bit being set

其次,如果您尝试在Objective-C应用程序中包含C ++库,则需要add some extra "magic" to your library's .h header files

#ifdef __cplusplus
extern "C" {
#endif

执行此操作将允许您的Objective-C代码在库中找到非C ++ - 损坏的符号。