簡體   English   中英

無法讓 cmake 鏈接到 GLFW 庫

[英]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。

https://gcc.gnu.org/onlinedocs/cpp/Include-Syntax.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM