gpt4 book ai didi

c++ - 无法确定项目的链接语言

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:43:48 26 4
gpt4 key购买 nike

我有这个 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 文件。但是,当我尝试将头文件添加到我的项目时出现链接错误。

最佳答案

add_subdirectory 表示添加包含CMakeLists.txt 文件的子目录。当您需要告诉 CMake 您的头文件放置位置时,您需要使用 include_directory:

include_directories (
${OPENGL_INCLUDE_DIRS}
${SDL2_INCLUDE_DIRS}
${PROJECT_SOURCE_DIR}/include
)

此外,我建议您像这样合并和更改文件中的一些指令(我不确定 FIND_PACKAGE 指令,但我认为其余指令看起来是正确的):

CMAKE_MINIMUM_REQUIRED (VERSION 2.8)
CMAKE_POLICY (SET CMP0002 OLD)

FIND_PACKAGE (OpenGL REQUIRED)
FIND_PACKAGE (SDL REQUIRED)

PROJECT (gl_nbody C CXX)

INCLUDE (FindPkgConfig)

INCLUDE_DIRECTORIES (
${SDL2_INCLUDE_DIRS}
${OPENGL_INCLUDE_DIRS}
${PROJECT_SOURCE_DIR}/include
)

SET (
gl_nbody_SRS
${PROJECT_SOURCE_DIR}/src/main.cpp
)

ADD_EXECUTABLE (
gl_nbody
${gl_nbody_SRS}
)

TARGET_LINK_LIBRARIES (
gl_nbody
${OPENGL_LIBRARIES}
${SDL2_LIBRARIES}
)

SET_TARGET_PROPERTIES (
gl_nbody
PROPERTIES LINKER_LANGUAGE CXX
)

关于c++ - 无法确定项目的链接语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24561308/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com