这次部署在服务器上,用的是Centos, 没有图形界面,就记录下踩坑记录。
配合https://blog.csdn.net/weixin_41869700/article/details/104259008一起使用。
-------------------------------------------------------------------------------------------------------------------------------------------------
1、gcc版本问题。
centos默认的gcc版本是4.8, 之前动态库一直编译不过去,我没有定位是gcc版本问题还是swig版本问题。就一起升级了。
1、安装centos-release-scl
sudo yum install centos-release-scl
2、安装devtoolset,注意,如果想安装7.*版本的,就改成devtoolset-7-gcc*,以此类推
sudo yum install devtoolset-7-gcc*
3、激活对应的devtoolset,所以你可以一次安装多个版本的devtoolset,需要的时候用下面这条命令切换到对应的版本
scl enable devtoolset-7 bash
2、swig版本问题
如果使用yum install swig 默认安装的话是2.0+版本,可能会编译不成功。
yum list|grep swig
swig.x86_64 2.0.10-5.el7 base
swig-doc.noarch 2.0.10-5.el7 base
swig3.x86_64 3.0.12-17.el7 extras
swig3-doc.noarch 3.0.12-17.el7 extras
swig3-gdb.x86_64 3.0.12-17.el7 extras
先查找版本
yum install swig3-gdb.x86_64
3、 使用命令编译。
g++ -Wall -fexceptions -O2 -fPIC -I/usr/local/include -I/usr/local/include/opencv -I/usr/local/include/opencv2 -I/home/pythonWeb/HKSDK/incCn -I/usr/include/python3.6m -c /home/pythonWeb/HKSDK/HKSWIG/HKIPcamera.cpp -o obj/Release/HKSWIG/HKIPcamera.o
g++ -Wall -fexceptions -O2 -fPIC -I/usr/local/include -I/usr/local/include/opencv -I/usr/local/include/opencv2 -I/home/pythonWeb/HKSDK/incCn -I/usr/include/python3.6m -c /home/pythonWeb/HKSDK/HKSWIG/HKIPcamera_wrap.cxx -o obj/Release/HKSWIG/HKIPcamera_wrap.o
g++ -Wall -fexceptions -O2 -fPIC -I/usr/local/include -I/usr/local/include/opencv -I/usr/local/include/opencv2 -I/home/pythonWeb/HKSDK/incCn -I/usr/include/python3.6m -c /home/pythonWeb/HKSDK/HKIPcamera/main.cpp -o obj/Release/HKIPcamera/main.o
g++ -shared -L/usr/local/bin obj/Release/HKSWIG/HKIPcamera.o obj/Release/HKSWIG/HKIPcamera_wrap.o obj/Release/HKIPcamera/main.o -o bin/Release/libHKIPcamera.so -s -lpthread /usr/local/lib64/libopencv_world.so /home/pythonWeb/HKSDK/lib/libAudioRender.so /home/pythonWeb/HKSDK/lib/libHCCore.so /home/pythonWeb/HKSDK/lib/libNPQos.so /home/pythonWeb/HKSDK/lib/libPlayCtrl.so /home/pythonWeb/HKSDK/lib/libSuperRender.so /home/pythonWeb/HKSDK/lib/libcrypto.so /home/pythonWeb/HKSDK/lib/libhcnetsdk.so /home/pythonWeb/HKSDK/lib/libhpr.so /home/pythonWeb/HKSDK/lib/libssl.so /home/pythonWeb/HKSDK/lib/libz.so /home/pythonWeb/HKSDK/lib/HCNetSDKCom/libHCAlarm.so /home/pythonWeb/HKSDK/lib/HCNetSDKCom/libHCCoreDevCfg.so /home/pythonWeb/HKSDK/lib/HCNetSDKCom/libHCDisplay.so /home/pythonWeb/HKSDK/lib/HCNetSDKCom/libHCGeneralCfgMgr.so /home/pythonWeb/HKSDK/lib/HCNetSDKCom/libHCIndustry.so /home/pythonWeb/HKSDK/lib/HCNetSDKCom/libHCPlayBack.so /home/pythonWeb/HKSDK/lib/HCNetSDKCom/libHCPreview.so /home/pythonWeb/HKSDK/lib/HCNetSDKCom/libHCVoiceTalk.so /home/pythonWeb/HKSDK/lib/HCNetSDKCom/libStreamTransClient.so /home/pythonWeb/HKSDK/lib/HCNetSDKCom/libSystemTransform.so /home/pythonWeb/HKSDK/lib/HCNetSDKCom/libanalyzedata.so /home/pythonWeb/HKSDK/lib/HCNetSDKCom/libiconv2.so
-------------------------------------------------------
注意这里 /usr/lib/x86_64-linux-gnu/libpthread.a 这个要删掉,可能centos和ubuntu不用。
我再ubuntu测试把这个删掉也是正常的, 再centos加上libpthread.a 编译之后会发成Segmentation Fault的问题