C++ 使用CMake和GCC(MacOS Sierra)编译时未找到SFML标头

C++ 使用CMake和GCC(MacOS Sierra)编译时未找到SFML标头,c++,gcc,compiler-errors,cmake,sfml,C++,Gcc,Compiler Errors,Cmake,Sfml,我一直在尝试在CMake项目中使用SFML,特别是标题SFML/Audio.hpp。我使用自制软件安装了SMFL,.dylib文件和头文件应分别位于/usr/local/lib和/usr/local/include中 现在运行CMake工作正常,告诉我它在/usr/local/include中找到了SFML2.4.2 但是,在编译项目时(使用make),我得到以下错误: /path/to/project.hpp:12:10: fatal error: 'SFML/Audio.hpp' file

我一直在尝试在CMake项目中使用SFML,特别是标题
SFML/Audio.hpp
。我使用自制软件安装了SMFL,.dylib文件和头文件应分别位于/usr/local/lib和/usr/local/include中

现在运行CMake工作正常,告诉我它在/usr/local/include中找到了SFML2.4.2

但是,在编译项目时(使用
make
),我得到以下错误:

/path/to/project.hpp:12:10: fatal error: 'SFML/Audio.hpp' file not found.
有人知道为什么会这样吗


注意:对于我的同事来说,在各种Linux操作系统上使用相同的CMake和源文件进行编译非常有效。

这听起来像是你忘了添加SFML的include目录。在Linux上,他们可能会将SFML安装到默认情况下GCC(或Clang)外观的某个系统路径,因此不需要任何额外的CMake指令

幸运的是,解决这个问题相当简单

在定义目标之前,将以下行添加到CMakeLists.txt的某个位置:

include\u目录(${SFML\u include\u DIR})
成功调用
查找包(SFML…
时,将填充变量
SFML\u INCLUDE\u DIR

进行此操作时,您可能还希望确保以正确的顺序链接到正确的库文件:

target_link_libraries(myTargetName ${SFML_LIBRARIES} ${SFML_DEPENDENCIES})
同样,这两个变量都会自动填充