我正在尝试在我自己的项目中使用glbinding。我使用cmake来构建一切。问题是链接器找不到这个库。可能我没有建立图书馆,因此它不能被链接,但我不知道如何实现这一点。我根据www.example.com编写了链接代码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);
}
我目前的项目结构:
1条答案
按热度按时间suzh9iv81#
您是否尝试从
target_link_libraries
中删除glbinding
?${GLBINDING_LIBRARIES}
就足够了;它将<your_specific_file_path_to_glbinding_library>
传递给链接器。使用-lglbinding
,链接器在一些默认目录中搜索库,不包括glbinding或build目录,因此抛出library not found
。要验证${GLBINDING_LIBRARIES}
的内容,您可以将其打印到cmake输出,例如通过message(STATUS ${GLBINDING_LIBRARIES})
。然而,我也建议像@janisz建议的那样将glbinding作为外部项目集成。编辑:对不起,没有看到有效的,但崩溃的答案@jet47