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.
很遗憾,我不明白哪里出了问题。
如果你能帮我解决这个问题,我将不胜感激。
项目结构:
- 包括
- glad.h
- glfw3.h
- glfw3native.h
- khrplatform.h
- 库
- libglfw3.a
- 来源
- glad.c
- 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;
}
您实际上需要 link GLFW 库。最后将此添加到您的 CMakeLists.txt:
target_link_libraries(testGlFW PRIVATE glfw3)
我正在尝试学习 (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.
很遗憾,我不明白哪里出了问题。
如果你能帮我解决这个问题,我将不胜感激。
项目结构:
- 包括
- glad.h
- glfw3.h
- glfw3native.h
- khrplatform.h
- 库
- libglfw3.a
- 来源
- glad.c
- 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;
}
您实际上需要 link GLFW 库。最后将此添加到您的 CMakeLists.txt:
target_link_libraries(testGlFW PRIVATE glfw3)