我正在尝试遵循(https://learnopengl.com/Getting-started/Creating-a-window)的教程。
我已经编译了静态的 GLFW 库,设置了CMake文件等。但是,当我尝试编译测试应用程序时,出现诸如undefined reference to 'glfwInit'
之类的错误。
导师说:
如果您现在尝试运行该应用程序,但它给出了许多未定义的引用错误,则表明您未成功链接GLFW库。
不幸的是,我不明白怎么了。
如果您能帮助我解决此问题,我将不胜感激。
项目结构:
CMakeLists.txt
我的 cmake 文件:
cmake_minimum_required(VERSION 3.15)
project(testGlFW)
set(CMAKE_CXX_STANDARD 14)
link_directories(${PROJECT_SOURCE_DIR}/lib)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall")
set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE} -ldl")
include_directories(${PROJECT_SOURCE_DIR}/include)
add_executable(testGlFW src/main.cpp)
这是 main.cpp :
#include "glad/glad.h"
#include "GLFW/glfw3.h"
int main()
{
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 4);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
return 0;
}
答案 0 :(得分:3)
您实际上需要链接GLFW库。最后将此添加到您的CMakeLists.txt中:
target_link_libraries(testGlFW PRIVATE glfw3)