当试图将Irrlicht静态库包含到我的cmake项目中时,您出现了一个编译错误
max@max-MS-7369:~/Desktop/survival/build$ make Scanning dependencies of target survival [ 33%] Building CXX object src/CMakeFiles/survival.dir/technic.cpp.o [ 66%] Building CXX object src/CMakeFiles/survival.dir/render.cpp.o [100%] Building CXX object src/CMakeFiles/survival.dir/survival.cpp.o Linking CXX executable ../debug/survival /usr/bin/ld: ../../irrlicht/lib/Linux/libIrrlicht.a(CIrrDeviceLinux.o): undefined reference to symbol 'XConvertSelection' /usr/bin/ld: note: 'XConvertSelection' is defined in DSO /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libX11.so so try adding it to the linker command line /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libX11.so: could not read symbols: Invalid operation collect2: ld returned 1 exit status make[2]: *** [debug/survival] Error 1 make[1]: *** [src/CMakeFiles/survival.dir/all] Error 2 make: *** [all] Error 2 max@max-MS-7369:~/Desktop/survival/build$
# find dependencies for irrlicht FIND_PACKAGE(ZLIB) FIND_PACKAGE(X11) FIND_PACKAGE(OpenGL) # includes set( survival_CUSTOM_INCLUDES ${ZLIB_INCLUDE_DIR} ${X11_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR} ${survival_SOURCE_DIR}/irrlicht/include ) # libraries set( survival_CUSTOM_LIBRARIES ${ZLIB_LIBRARIES} ${X11_LIBRARIES} ${OPENGL_LIBRARIES} ${survival_SOURCE_DIR}/irrlicht/lib/Linux/libIrrlicht.a )
我不明白为什么它说它找不到XConvertSelection
,尽管我已经包含了X11库。
我加了那两个libs来修复它
/usr/lib/x86_64-linux-gnu/libX11.so
/usr/lib/x86_64-linux-gnu/libXxf86vm.so.1
它们由FIND_PACKAGE()提供的lib包含
问题内容: 我试图将静态库(与gcc一起编译)链接到C 程序,但出现了“未定义引用”。我在ubuntu 12.04服务器计算机上使用了gcc和g 版本4.6.3。例如,这是阶乘方法的简单库文件: mylib.h mylib.c 我使用gcc为此mylib.c创建了对象: 再次使用AR实用工具从目标文件创建了静态库: 我用C程序(test.c)和C ++程序(test.cpp)测试了这个库 C和C
我们检查一下PHP语言中get_loaded_extensions()函数的输出,会发现有一些扩展并没有php.ini文件中调用,而它们确实也已经加载到PHP里去了,可以让我们在PHP语言中使用,如standard、Reflection、Core等。它们便是静态编译的,它们没有被编译成so或者dll文件供PHP动态调用,而是直接和PHP主程序编译到一起。 在*nix上执行静态编译 现在,先让我们执
问题内容: 我在Ubuntu(arm-linux-gnueabi- gcc)中有一个ARM交叉编译器,默认体系结构是ARMv7。但是,我想编译一个ARMv5二进制文件。我通过为编译器提供选项来实现。 到目前为止,一切都很好。由于我的ARM系统使用BusyBox,因此必须编译静态链接的二进制文件。所以我给gcc 选项。 但是,链接器链接到我的ARMv5二进制文件的 libc.a 出现问题。该文件使用
我有以下代码: 我希望它输出“0,1,2,3”并停止,但它输出的是一系列无穷无尽的“0、1、2、3、4、5……” 看起来比较< code>di 如果我只是注释掉< code >,delta=mc[di],我会正常得到“0,1,2,3”。无辜作业有什么问题? 我正在使用Ideone.com g14带-O2选项。
问题内容: 我想修改setup.py文件,以便命令“ python setup.py build”编译基于C的扩展模块,该模块静态(而非动态)链接到库。 该扩展程序当前动态链接到许多库。除了静态链接到一个库外,我想保留所有内容。我已经成功地通过手动修改了对distutils运行的gcc的调用来完成了此操作,尽管它要求我明确列出相关库。 也许这是太多信息,但是为了清楚起见,这是在“ python s