我正在开发基于此框架的Oculus项目: https://github.com/OculusRiftInAction/OculusRiftInAction
我将rpavlik中的wiiuse库添加到了它。 https://github.com/rpavlik/wiiuse
在这两个项目中都存在一个名为" IO.h"的文件。使用CMake生成XCode项目后,我在File" opengl / Font.cpp"中的OculusRiftInAction代码中出现错误。它引入了" IO.h"文件,但它是wiiuse库中的文件。我无法弄清楚如何吸引" IO.h"来自OculusRiftInAction框架中原始位置的文件。
我怀疑它是一般的CMake或XCode问题。有谁知道这个?
FIXED:
我使wiiuse库静态,以某种方式解决了这个问题。但我不知道为什么修复它。我仍然可以使用该库,但它不再覆盖主代码中的IO.h文件。
答案 0 :(得分:4)
不要将第三方库标题直接放在编译器的标题搜索路径中。将它们放在一个目录中,该目录指示它们来自哪个库。例如,wiiuse
标题可能位于名为wiiuse
的目录中,而 目录应位于搜索路径中。因此,为了包含"IO.h"
标题,您需要执行此操作:
#include <wiiuse/IO.h>
如果您不知道如何使用XCode查找搜索路径,我也不知道。但也许this question会帮助您。