包含Irrlicht静态库时出现C++编译错误

C++ compile error when includeing Irrlicht static lib

本文关键字:C++ 编译 错误 Irrlicht 静态 包含      更新时间:2023-10-16

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()提供的库中