我一直在尝试在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和源文件,编译对我的同事来说很好。
答案 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})
同样,两个变量都会自动填充。