Ubuntu16.04下OpenCV+Pytorch 1.0(C++)冲突的原因及解决办法(自己编译)

Ubuntu16.04下OpenCV+Pytorch 1.0(C++)冲突的原因及解决办法(自己编译)
原因:(问题参考https://oldpan.me/archives/pytorch-c-libtorch-inference,https://www.jianshu.com/p/6fe9214431c6
https://michhar.github.io/how-i-built-pytorch-gpu/
https://www.jianshu.com/p/6fe9214431c6)
因为官方编译好的版本为了兼容性,选择了旧式的C+±ABI,如果你使用的gcc版本>5,那么如果你将libtorch与其他编译好的库(使用gcc-5以及以上)进行联合编译,很有可能出现冲突,为了避免环境上面的问题,需要自己对源码进行编译。

解决方法(自己编译):
1.下载pytorch1.0源码
git clone --recursive https://github.com/pytorch/pytorch.git
2. 进入源码目录:
cd pytorch
创建build文件并进入:
mkdir build
cd build
3.执行编译命令
python …/tools/build_libtorch.py
4.编译后的文件处在pytorch/torch目录下。
5.采用CMakelists.txt配置如下:
#Torch
include_directories(/home/dwy/pytorch/torch/include)
set(TORCH_LIB_PATH “/home/dwy/pytorch/torch/lib”)
file(GLOB LIBS “${TORCH_LIB_PATH}/*.so”)
add_executable(main main.cpp)
target_link_libraries(main ${LIBS} )

你可能感兴趣的:(Ubuntu16.04下OpenCV+Pytorch 1.0(C++)冲突的原因及解决办法(自己编译))