我正在开发一个涉及构建三个不同可执行文件的项目。我认为我不会创建三个独立的Xcode项目,而是将所有源代码保存在一个项目中,并为二进制文件使用不同的目标。它们都碰巧需要相同的源文件集(一个用C编写的加密库),并且我已经为它们添加了一个静态库目标,它似乎能够很好地编译它们。
我的问题是,我正在处理其中一个可执行文件,并尝试与该库链接,我一直在获取未找到的架构x86_64"" ld:符号。错误。我已经编译了库并将其添加到" Target Dependencies"," Link Binary with Libraries"和" Copy Headers" (或者相关的标题,无论如何)在相关目标的构建阶段设置中。 Xcode让我包含了库(只是" encryption.h")但是构建失败了。有什么建议?我对使用Xcode进行C ++开发比较陌生,所以我可能会错过一些明显的东西。
答案 0 :(得分:0)
这里可能会发生一些问题。
首先,确保" x86_64
"已在库构建设置中设置。
您的构建设置应如下所示:
其次,如果您尝试在Objective-C应用程序中包含C ++库,则需要add some extra "magic" to your library's .h
header files。
#ifdef __cplusplus
extern "C" {
#endif
执行此操作将允许您的Objective-C代码在库中找到非C ++ - 损坏的符号。