我正在尝试将现有的 C++ 代码库“导入”到我的 XCode iOS 项目中。
问题是,xCode 不会编译(因此不会链接)我的代码。 这是我到目前为止所做的:
- 文件 > 将文件添加到“项目”。我没有勾选“复制文件”,因为它是多个平台的共享代码库,并且源代码的多个拷贝不是一个选项。
- 我已在“标题搜索路径”项目设置中添加了适当的路径。包含头文件有效,我可以从我的 Objective-C++ (.mm) 文件中#include "stuff.h"。
但是,我找不到任何方法来实际告诉 XCode 编译 .cpp 文件?
几点:
- 我不是在寻找将其预编译到库中并以这种方式链接的方法
- 该项目是一个标准的 iOS Objective-C 项目。从中调用 C++ 代码(这不是问题)
更新
我已将代码库 目录 添加到目标的“编译源”中。我实际上必须在弹出的对话框中单击“添加其他...”,因为我无法选择对我的代码库的目录引用。
当我添加它时,XCode 会询问我是否要“创建外部构建系统项目”。我把它打勾,两个字段的默认值是“/usr/bin/make”和“$(ACTION)”。但是,我的代码库在构建过程中没有被编译。我必须编写自己的 Makefile 吗?
如果我不选择“创建外部构建系统项目”,则会在目标下创建目录引用,但在构建期间未编译并发出警告:
warning: no rule to process file '$(PROJECT_DIR)/../codebase'
of type folder for architecture i386
最佳答案
即使您不勾选Copy Files,在将文件添加到项目时也必须勾选Add to Targets。
如果您忘记执行此操作,您可以选择目标,转到 Build Phases 选项卡并将文件添加到 Compile Sources。
关于iphone - 让 XCode 在 XCode 4.3(.1) 中包含、编译和链接现有 (C++) 代码库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10128646/