包含Irrlicht静态库时出现C++编译错误
C++ compile error when includeing Irrlicht static lib
U在尝试将Irrlicht静态库包含到我的cmake项目中时出现编译错误
编译错误:
max@max-MS-7369:~/Desktive/servation/build$make扫描目标生存的依赖项[33%]正在构建CXX对象src/CMakeFiles/ervation.dir/technolog.cpp.o[66%]正在构建CXX对象src/CMakeFiles/ervation.dir/render.cpp.o[100%]正在构建CXX对象src/CMakeFiles/ervation.dir/ervation.cpp.o正在链接CXX可执行文件/调试/生存/usr/bin/ld:..//irrlicht/lib/Linux/libIrrlicht.a(CIrrDeviceLinux.o):对符号"XConverSelection"的未定义引用/usr/bin/ld:注意:"XConverSelection"是在DSO/usr/lib/gcc/x86_64-linux-gnu/4.6/../../x86_64-linux-gnu/libX11.so中定义的,所以请尝试将其添加到链接器命令行/usr/lib/gcc/x86_64-linux-gnu/4.6/../../x86_64-linux-gnu/libX11.so:无法读取符号:无效操作collect2:ld返回1退出状态make[2]:***[调试/生存]错误1make[1]:***[src/CMakeFiles/ervation.dir/all]错误2make:***[all]错误2max@max-MS-7369:~/桌面/生存/构建$
这就是我尝试包含lib:的方式
#查找irrlicht的依赖项FIND_PACKAGE(ZLIB)FIND_PACKAGE(X11)FIND_PAGE(OpenGL)#包括集合(survival_CCUSTOM_INCLUDES${ZLIB_INCLUDE_DIR}${X11_INCLUDE_DIR}${OPENGL_INCLUDE_DIR}${survival_SOURCE_DIR}/irlicht/include)#库集合(survival_CCUSTOM_LIBRARIES${ZLIB_LIBRARIES}${X11_LIBRARIES}${OPENGL_LIBRARIES}${survival_SOURCE_DIR}/irlicht/lib/Linux/libIrrlicht.a)
我不明白为什么它说找不到XConvertSelection
,尽管我已经包含了X11库。
我添加了这两个库来修复它
/usr/lib/x86_64-linux-gnu/libX11.so
/usr/lib/x86_64-linux-gnu/libXxf86vm.so.1
它们不包括在从FIND_PACKAGE()提供的库中