我正在开发一个带有xcode全新更新的macosx 10.9,我已经完成了xcode-select --install。 我有一个使用标题GL / glew.h和stdio.h
的C ++文件#include <stdio.h>
#include <GL/glew.h>
Glew安装在/ usr / include中。
$ ls /usr/include/GL
glew.h glxew.h wglew.h
stdio.h也位于/ usr / include中,但是一个locate显示它存在于许多文件夹中,包括:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk/usr/include /
如果我尝试编译代码而没有指定/ usr / local include路径,那么我得到
fatal error: 'GL/glew.h' file not found
#include <GL/glew.h>
请注意,stdio似乎已成功包含在内。 如果我在命令行中将-I / usr / include添加到g ++,则编译成功。
现在,我有一个添加/ usr / include的cMakeList.txt,就像那样:
include_directories ( /usr/include/)
但是在生成的makefile中,-I / usr / include /没有出现,编译失败就像以前一样。
我当前的解决方法是/ usr / include / named / usr / include2的符号链接,然后包含该目录。使用该配置,-I / usr / include2被添加到makefile中,一切正常。然而它很难看,我在那里遗漏了一些东西。
我的猜测是/ usr / include应该默认包含,因此cmake会跳过它,但是x-code使用不同的默认包含路径(顺便提一下stdio.h也是如此)。
有谁知道如何:
我希望我已经提供了足够的信息,因为这是我的第一个问题。
答案 0 :(得分:1)
我不确定,但我认为cmake
或xcode
会改变他们的行为,现在包含的目录会自动从/usr/include/
替换为/.../Xcode.app/.../SDKs/MacOSX/usr/include
(它对我来说是earlier。作为一种解决方法,您可以显式添加编译器标志:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/usr/include")
请注意,在case中,您可以使用find_package
:
find_package(GLEW REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${GLEW_INCLUDE_DIRS}")
答案 1 :(得分:0)
在XCode中,您应该能够将/ usr / include添加到项目中的搜索路径构建设置: