【发布时间】:2014-07-03 18:53:52
【问题描述】:
我有这个 CMakeLists.txt 文件:
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
CMAKE_POLICY(SET CMP0002 OLD)
PROJECT(gl_nbody C CXX)
ADD_EXECUTABLE(gl_nbody src/main.cpp)
set_target_properties(gl_nbody PROPERTIES LINKER_LANGUAGE CXX)
INCLUDE(FindPkgConfig)
PKG_SEARCH_MODULE(SDL2 REQUIRED sdl2)
INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(gl_nbody ${SDL2_LIBRARIES})
find_package(OpenGL REQUIRED)
include_directories(${OPENGL_INCLUDE_DIRS})
target_link_libraries(gl_nbody ${OPENGL_LIBRARIES})
add_subdirectory("src")
add_subdirectory("include")
我不确定我做错了什么。我看过this 的帖子。但是,发布的解决方案并没有解决我的问题。 cmake 的输出是:
-- Configuring done
CMake Error: CMake can not determine linker language for target:gl_nbody
CMake Error: Cannot determine link language for target "gl_nbody".
-- Generating done
-- Build files have been written to: /home/jared/projects/gl_nbody
编辑: 我发现问题是由于我的 include 目录中的 CMakeLists.txt 文件造成的。这里是:
file(GLOB gl_nbody_HEADER
"*.h"
)
#add_executable(gl_nbody ${gl_nbody_HEADER})
让我感到奇怪的是,我的 src 目录中有一个类似的文件,唯一的区别是它添加了 .cpp 文件而不是 .h 文件。但是,当我尝试将头文件添加到我的项目时出现链接错误。
【问题讨论】: