我试图在我自己的项目中使用glbinding。我用cmake来构建一切。问题是链接器找不到这个库。可能我没有建立图书馆因此无法联系,但我不知道如何实现这一目标。 我已根据https://github.com/hpicgs/glbinding#linking-binaries编写了代码链接。
CMake的:
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
main.cpp中:
#include <glbinding/gl/gl.h>
int main(void) {
glbinding::Binding::initialize();
exit(EXIT_SUCCESS);
}
我目前的项目结构:
答案 0 :(得分:1)
您是否尝试从glbinding
删除target_link_libraries
? ${GLBINDING_LIBRARIES}
应该足够了;它将<your_specific_file_path_to_glbinding_library>
传递给链接器。使用-lglbinding
链接器在某些默认目录中搜索库,不包括glbinding或build目录,从而抛出library not found
。要验证${GLBINDING_LIBRARIES}
的内容,您可以将其打印到cmake输出,例如通过message(STATUS ${GLBINDING_LIBRARIES})
。但是,我还建议将glbinding集成为@janisz建议的外部项目。