【发布时间】:2017-09-13 09:51:46
【问题描述】:
我有 build/CMakeLists.txt 文件:
cmake_minimum_required (VERSION 2.8)
project(Tetris)
include_directories(
"headers"
)
set(SFML_DEPENDENCIES)
set(SFML_DEPENDENCIES ${SFML_SYSTEM_DEPENDENCIES} ${SFML_DEPENDENCIES})
set(SFML_DEPENDENCIES ${SFML_GRAPHICS_DEPENDENCIES} ${SFML_DEPENDENCIES})
set(SFML_DEPENDENCIES ${SFML_WINDOW_DEPENDENCIES} ${SFML_DEPENDENCIES})
set(CMAKE_CXX_COMPILER /usr/bin/g++-5)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -g")
set(EXECUTABLE_NAME "tetris")
file(GLOB SOURCES *.cpp)
add_executable(${EXECUTABLE_NAME} ${SOURCES})
target_link_libraries(${EXECUTABLE_NAME} ${SFML_LIBRARIES})
当我运行 cmake .. && make 时,屏幕上显示我没有包含 SFML 库的消息:
undefined reference to `sf::VertexArray::operator[](unsigned long)'
undefined reference to `sf::Keyboard::isKeyPressed(sf::Keyboard::Key)'
等等。我还尝试将标志包含到 CMAKE_CXX_FLAGS 变量中: -lsfml-graphics -lsfml-window -lsfml-system 它也不起作用。但如果我直接从控制台运行 g++,所有编译都很好:
g++-5 --std=c++11 -Wall main.cpp Game.cpp Window.cpp Board.cpp -lsfml-graphics -lsfml-window -lsfml-system
如果有什么不同,我会使用 Linux Mint。
【问题讨论】: