CMake - 两个库中的相同文件名发生冲突

时间:2015-01-24 17:33:56

标签: c++ xcode cmake oculus

我正在开发基于此框架的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文件。

1 个答案:

答案 0 :(得分:4)

不要将第三方库标题直接放在编译器的标题搜索路径中。将它们放在一个目录中,该目录指示它们来自哪个库。例如,wiiuse标题可能位于名为wiiuse的目录中,而 目录应位于搜索路径中。因此,为了包含"IO.h"标题,您需要执行此操作:

#include <wiiuse/IO.h>

如果您不知道如何使用XCode查找搜索路径,我也不知道。但也许this question会帮助您。