gpt4 book ai didi

c++ - CMake 找不到源文件(add_executable)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:06:09 28 4
gpt4 key购买 nike

我一直在努力遵循供应商的教程:CMake-Tutorial ,查看此处的文档:Cmake-Documentation , 并尽可能地利用 YouTube 上的资源进行 self 教育,但我真的很难为使用 OpenGL 设置环境。在修改了 Glitter 样板文件以及 open.gl 和 learnopengl.com 上的教程之后,我决定了解构建过程非常重要,不能不进行调查。

在我的调查中,我遇到了 CMake 错误“找不到源文件”,详情如下所示。问题似乎是由“add_executable”引起的。

此处提出了类似的问题:CMake - Cannot find file .解决方案涉及确保为每个变量正确设置 ${PROJECT_SOURCE_DIR},我相信我已经做到了。

我的文件结构:

+ infuriating_project
+ bin // post compile results
+ src // my humble code
+ deps // external code
+glew
+ include
+ src
+glfw
+ include
+ src
+glm
+soil
+ lib
+ src

我的 CMakeLists.txt:

cmake_minimum_required (VERSION 3.0)


# Version Information ---------------------------------------------------------
project (openGL-practice)
SET (VERSION_MAJOR 1)
SET (VERSION_MINOR 0)
SET (VERSION_FEATURE 0)
SET (VERSION_PATCH 0)
SET (VERSION "${VERSION_MAJOR}.${VERSION_MINOR}")
SET (VERSION "${VERSION}.${VERSION_FEATURE}.${VERSION_PATCH}")
MESSAGE ("Version: ${VERSION}")

# Configure Source & Binary Directories ---------------------------------------
SET (PROJECT_ROOT "${PROJECT_SOURCE_DIR}")
SET (PROJECT_SOURCE_DIR "${PROJECT_SOURCE_DIR}/src")
SET (PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/bin")
MESSAGE ("Source path: ${PROJECT_SOURCE_DIR}")
MESSAGE ("Binary path: ${PROJECT_BINARY_DIR}")

# Configure Depenency Directories ---------------------------------------------
SET (PROJECT_DEPS "${PROJECT_ROOT}/deps")
SET (glew_inc "${PROJECT_DEPS}/glew/include/GL/")
SET (glew_src "${PROJECT_DEPS}/glew/src/")
SET (glfw_inc "${PROJECT_DEPS}/glfw/include/GLFW/")
SET (glfw_src "${PROJECT_DEPS}/glfw/src/")
SET (glm "${PROJECT_DEPS}/glm/glm/")
SET (soil_lib "${PROJECT_DEPS}/lib/")
SET (soil_src "${PROJECT_DEPS}/src/")

# Include directories ---------------------------------------------------------
include_directories("
${PROJECT_SOURCE_DIR}
${PROJECT_BINARY_DIR}
${glew_inc}
${glew_src}
${glfw_inc}
${glfw_src}
${glm}
${soil_lib}
${soil_src}
${PROJECT_ROOT}
")

# Add executable --------------------------------------------------------------
add_executable(main main.cpp)

提供了以下错误:

CMake Error at CMakeLists.txt:46 (add_executable):
Cannot find source file:

main.cpp

Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx


CMake Error: CMake can not determine linker language for target: main
CMake Error: Cannot determine link language for target "main".

我们将不胜感激任何帮助。

最佳答案

有几点我想提一下。

  1. include_directories 有助于查找头文件。源文件必须始终具有完整的相对路径。

    假设您的 main.cpp 在 src 中,正确的语法是

    add_executable(main ${PROJECT_SOURCE_DIR}/main.cpp)
  2. 包含 ${PROJECT_BINARY_DIR} 没有意义。

  3. 覆盖 CMake 默认变量,如 ${PROJECT_SOURCE_DIR} 不是好的做法。以后你会永远记得你做过这样的事,对于另一个程序员来说,这是很意外的。

希望对您有所帮助。

关于c++ - CMake 找不到源文件(add_executable),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43400453/

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