【发布时间】:2014-04-13 09:13:13
【问题描述】:
我对 CMake 很陌生,我尝试为我的项目编写一个 CMake 文件。 我的项目包含 .h 和 .cpp 文件,生成可执行文件并使用 SFML 库。 我已经安装了 findSFML 脚本,我使用了 CMake 的 find_package 函数:
cmake_minimum_required(VERSION 2.6)
# Projet name
project("Witch_Blast")
file(
GLOB_RECURSE
source_files
src/*
)
add_executable(
"Witch_Blast"
${source_files}
)
# Detect and add SFML
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH})
find_package(SFML 2.1 REQUIRED system window graphics audio)
target_link_libraries(Witch_Blast ${SFML_LIBRARIES})
我尝试生成一个 Windows Code::Blocks 项目。 它找到库并生成项目文件。
我的问题: 无法编译,因为找不到SFML头文件,也无法修改项目设置...
我做错了什么?
谢谢!
编辑:
CMake 生成输出:
-- The C compiler identification is GNU 4.7.1
-- The CXX compiler identification is GNU 4.7.1
-- Check for working C compiler: C:/Program Files (x86)/CodeBlocks/MinGW/bin/gcc.exe
-- Check for working C compiler: C:/Program Files (x86)/CodeBlocks/MinGW/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/CodeBlocks/MinGW/bin/g++.exe
-- Check for working CXX compiler: C:/Program Files (x86)/CodeBlocks/MinGW/bin/g++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found SFML 2.1 in C:/Lib/SFML-2.1_TDM/include
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/Seb/Dev/Witch Blast/cmakedir
消息(SFML_LIBRARIES):
debugC:/Lib/SFML-2.1_TDM/lib/libsfml-system-d.aoptimizedC:/Lib/SFML-2.1_TDM/lib/
libsfml-system.adebugC:/Lib/SFML-2.1_TDM/lib/libsfml-window-d.aoptimizedC:/Lib/S
FML-2.1_TDM/lib/libsfml-window.adebugC:/Lib/SFML-2.1_TDM/lib/libsfml-graphics-d.
aoptimizedC:/Lib/SFML-2.1_TDM/lib/libsfml-graphics.adebugC:/Lib/SFML-2.1_TDM/lib
/libsfml-audio-d.aoptimizedC:/Lib/SFML-2.1_TDM/lib/libsfml-audio.a
(但这不是链接器错误,而是包含路径错误)
【问题讨论】:
-
“它不会编译,因为它找不到 SFML 头文件”你能把实际的错误信息和你的库所在的路径一起发布吗?提示:使用Cmake命令message()显示变量内容
-
谢谢,我的错误只是“没有这样的文件或目录”。我刚刚添加了输出CMake数据,SFML已经正确找到了。
标签: c++ cmake codeblocks sfml