我正在将我的c ++引擎移植到mac,因此我使用premake来生成一个xcode项目,它做得很好。
Box2D内置于引擎中,其中一个文件“b2Broadphase.h”包含来自c ++标准库的算法。
这会给ctime文件中的所有::clock_t has not been declared
命令带来这些错误:using
等等。
我无法理解这一点,因为在使用premake构建make文件时,它运行良好并在OSX上构建一个完美的库。它唯一的Xcode给出了这些错误。
答案 0 :(得分:0)
我的猜测是Xcode尚未配置为包含实现文件(.m或.cpp),或者尚未配置为链接您正在使用的库。通常,您需要做两件事:1。包含标题2.使用实际可执行对象链接库。
在Xcode中,您可以通过选择左侧文件浏览器面板中的项目(最顶层项目)来执行此操作,并且主区域中有一个部分用于选择要链接到的库。您必须明确告诉它链接您正在使用的库,即使您已导入其标题。
对于.cpp或.m实现文件,您需要告诉它将该文件包含在目标中以进行编译。这可以在构建设置(与lib包含类似的位置)中完成,或者当您选择文件时,右侧的检查器面板有一个区域供您选择要包含该文件的目标。(您只需要“包含”这样的实现文件,而不是.h文件)