C ++库链接问题

时间:2019-12-14 18:42:45

标签: c++ opengl cmake glfw

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

我已经编译了静态的 GLFW 库,设置了CMake文件等。但是,当我尝试编译测试应用程序时,出现诸如undefined reference to 'glfwInit'之类的错误。

导师说:

  

如果您现在尝试运行该应用程序,但它给出了许多未定义的引用错误,则表明您未成功链接GLFW库。

不幸的是,我不明白怎么了。

如果您能帮助我解决此问题,我将不胜感激。

项目结构:

  • 包括
    1. glad.h
    2. glfw3.h
    3. glfw3native.h
    4. khrplatform.h
  • lib
    1. libglfw3.a
  • src
    1. glad.c
    2. main.cpp

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

1 个答案:

答案 0 :(得分:3)

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

target_link_libraries(testGlFW PRIVATE glfw3)