我一直在試圖按照供應商的教程在這裏:CMake-Tutorial,看看這裏的文檔:Cmake-Documentation,並儘可能使用YouTube上的來源儘可能地教育自己,但我真的很苦惱建立與OpenGL合作的環境。在修改了Glitter樣板和open.gl和learnopengl.com上的教程之後,我已經決定了解構建過程太重要了,以免調查。CMake無法找到源文件(add_executable)
在我的調查中,我遇到了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".
任何及所有的幫助將是非常讚賞。
嗨guenni_90,謝謝你的回覆。這確實解決了CMake和「無法找到源文件」錯誤的問題,所以我已經將您的解決方案標記爲已接受。不幸的是,我在運行make後仍然出現錯誤,但在發佈新問題之前,我會嘗試獨立解決此問題。 – assemblyDruid