在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
. 花了几天时间,需要把经验给记下来。 1. 需要支持C++11的编译器,最方便的方式就是 yum -y install devtoolset-6 在/usr/local/bin中增加gcc6.sh #!/bin/bash scl enable devtoolset-6 bash 如果把这个放到~/.bashrc中,可能登录时会造成系统资源不足,我试试放在~/.bash_profile中。 CMakeLists.txt中增加: macro(use_cxx11) use_cxx11()
2. 依赖的第三方库原来使用stlport编译出来的。比如,把libcppunit.a拷贝到tmp/t下, ar x libcppunit.a 会发现有一个libstlport.a这个库。放弃这个libcppunit.a, 如果下载源码:是https://sourceforge.net/projects/cppunit/files/cppunit/1.12.1 中的地址。 CMakeLists.txt中,libcppunit.a 改为libcppunit.so, 并且把原来的.a从原来位置挪开。 还发现 下载源码:https://gigenet.dl.sourceforge.net/project/xmlrpcpp/xmlrpc%2B%2B/Version%200.7/xmlrpc%2B%2B0.7.zip,然后编译,解决编译错误,主要是有些文件没有包含 string.h。生成的是.a,决定用.so,修改makefile。 CPPFLAGS增加:-fPIC 增加目标: $(SO): $(OBJ) 测试文件Validator.cpp对编译错误做修改: // s += params[0][params[0].size()-1]; //tj com, cannot compile 把编译出来的.so拷贝到/usr/local/lib下,把src/*.h拷贝到/usr/local/include/xmlprc。在CMakeLists.txt中做相应的修改,老的.a挪走。 3. 对libXmlRpc.a做测试时,需要 MY_LIBS := $(MY_LIBS) -Wl,-Bstatic -L/usr/local/lib -lXmlRpc -Wl,-Bdynamic -lm 注意-lm这样写,否则会报错。 CMakeLists需要增加: LINK_DIRECTORIES(/usr/local/lib) 整个问题,从google上搜索找不到有效的答案。主要是需要顿悟: cppunit是用了stlport才编译出来的,而我们不想使用stlport。突然领悟了这个,问题才最终得到解决。 4. 中间担心cmake有问题,下载cmake3.10.x版本,并且安装。安装时指定
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论