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

时间:2017-03-04 16:44:56

标签: c++ gcc compiler-errors cmake sfml

我一直在尝试在CMake项目中使用SFML,特别是标题SFML/Audio.hpp。我使用Homebrew安装了SMFL,并且.dylib文件和头文件应该分别正确放置在/ usr / local / lib和/ usr / local / include中。

现在运行CMake工作正常,告诉我它有Found SFML 2.4.2 in /usr/local/include

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

/path/to/project.hpp:12:10: fatal error: 'SFML/Audio.hpp' file not found.

有谁知道为什么会这样?

注意:在各种Linux操作系统上使用相同的CMake和源文件,编译对我的同事来说很好。

1 个答案:

答案 0 :(得分:0)

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

幸运的是,解决这个问题非常简单。

在定义目标之前,将以下行添加到 CMakeLists.txt

include_directories(${SFML_INCLUDE_DIR})

成功调用SFML_INCLUDE_DIR后,将填充变量find_package(SFML...)

当您了解它时,您可能还希望确保以正确的顺序链接到正确的库文件:

target_link_libraries(myTargetName ${SFML_LIBRARIES} ${SFML_DEPENDENCIES})

同样,两个变量都会自动填充。