C++ 库链接问题

C++ Library linking issue

我正在尝试学习 (https://learnopengl.com/Getting-started/Creating-a-window) 中的教程。

我已经编译了一个静态 GLFW 库,设置了一个 CMake 文件等。但是当我尝试编译我的测试应用程序时,我得到类似 undefined reference to 'glfwInit'.

导师说:

If you try to run the application now and it gives a lot of undefined reference errors it means you didn't successfully link the GLFW library.

很遗憾,我不明白哪里出了问题。

如果你能帮我解决这个问题,我将不胜感激。

项目结构:

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;
}

您实际上需要 link GLFW 库。最后将此添加到您的 CMakeLists.txt:

target_link_libraries(testGlFW PRIVATE glfw3)