[英]Cannot get cmake to link to GLFW library
我正在嘗試使用 GLFW 編寫 OpenGL 應用程序。 文件結構如下
-USG
-build
-include
-glfw-3.3
-src
-CMakeLists.txt
-main.cpp
-CMakeLists.txt
USG
文件中的CMake如下。
cmake_minimum_required(VERSION 3.0)
project(USG)
#--------------------------------------------------------------------
# Set GLFW variables
#--------------------------------------------------------------------
set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
#--------------------------------------------------------------------
# Add subdirectories
#--------------------------------------------------------------------
add_subdirectory(include/glfw-3.3)
add_subdirectory(src)
而src
文件中的CMakeLists如下
add_executable(usg main.cpp)
set(OpenGL_GL_PREFERENCE GLVND)
find_package(OpenGL REQUIRED)
if (OPENGL_FOUND)
target_include_directories(usg PUBLIC ${OPENGL_INCLUDE_DIR})
target_link_libraries(usg ${OPENGL_gl_LIBRARY})
endif()
target_link_libraries(usg glfw)
我在構建文件夾中運行cmake ../
然后是make
。 運行 cmake 會按預期運行。 運行 make 構建 glfw 很好,但是當它到達 main.cpp 時,它在#include <GLFW\\glfw3.h>
告訴我GLFW\\glfw3.h: No such file or directory
失敗。 在我看來,cmake 沒有正確地將頭文件鏈接到 main.cpp 文件,但我對 cmake 了解得不夠多,無法使其正常工作。 我已經嘗試查看 glfw-3.3 示例文件夾中提供的示例,但我無法理解它來解決我的問題。 我已經嘗試從堆棧溢出的許多類似問題中汲取我所能獲得的知識,但沒有一個可以提供幫助。
我在這里關注本教程。 我希望 OpenGL 應用程序相對可移植,這就是我從源代碼編譯 glfw 而不是使用二進制文件的原因。 如果這很重要,我正在 Linux 上構建。
嘗試#include <GLFW/glfw3.h>
而不是#include <GLFW\\glfw3.h>
包含路徑中的反斜杠是一種糟糕的 (Windows) 實踐,並且不適用於 GCC。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.