c++ - 将 glbinding 与 cmake 链接起来

标签 c++ opengl linker cmake

我正在尝试在我自己的项目中使用 glbinding。我正在使用 cmake 构建所有内容。问题是链接器找不到这个库。可能我不构建库因此无法链接,但我不知道如何实现它。 我已经根据 https://github.com/hpicgs/glbinding#linking-binaries 编写了链接代码.

制作:

set(SOURCE_FILES main.cpp)

add_executable(AKOpenGLEngine ${SOURCE_FILES})

set(CMAKE_PREFIX_PATH ${CMAKE_MODULE_PATH} glbinding )
find_package(glbinding REQUIRED)
include_directories(${GLBINDING_INCLUDES})
target_link_libraries(AKOpenGLEngine glbinding ${GLBINDING_LIBRARIES})

错误:

Linking CXX executable AKOpenGLEngine
ld: library not found for -lglbinding

主要.cpp:

#include <glbinding/gl/gl.h>

int main(void) {
    glbinding::Binding::initialize();
    exit(EXIT_SUCCESS);
}

我目前的项目结构:

project structure

最佳答案

您是否尝试删除 glbinding来自 target_link_libraries${GLBINDING_LIBRARIES}应该足够了;它通过 <your_specific_file_path_to_glbinding_library>到链接器。与 -lglbinding链接器在某些默认目录中搜索库,不包括您的 glbinding 或构建目录,因此抛出 library not found .验证${GLBINDING_LIBRARIES}的内容您可以将其打印到 cmake 输出,例如,通过 message(STATUS ${GLBINDING_LIBRARIES}) .但是,我还建议按照@janisz 的建议将 glbinding 集成为外部项目。

编辑:抱歉,没有看到@jet47 的有效但折叠的答案

关于c++ - 将 glbinding 与 cmake 链接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27516118/

相关文章:

c++11/14 make_unique std::string 的模糊重载

C# COM 互操作 : exposing function with a managed object as parameter

c++ - OpenGL 类型 GLint、Glbyte... 到 C++ int32_t、int8_t... 映射

c++ - 如何将此 C 代码转换为 C++?

c++ - 根据类模板参数,定义或不定义类中的函数

c++ - 纹理显示不正确 - 可能坐标错误 OpenGL、C++

java - 3D:如何渲染/创建地形

c++ - 如何在QtCreator项目中配置Boost?

c - 如何将.text段以外的段中的执行代码放到.text段的中间

c++ - 模板类和自由函数命名空间的实现问题