首先要在 TX2 下安装好 cuda 版的 OpenCV。
然后用 g++ 编译用 OpenCV 写的 C++ 程序,会报一大堆错。下面说一下如何解决:
(一) 会有一堆 “/home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:error: ‘NppiGraphcutState’……”。
这得去修改上述位置下的 graphcut.cpp,将
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
这句改为:
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)
在 编译cuda版OpenCV 这篇里还提到了另外两个错误,不过我好像并没有碰到。
(二)然后依然会有一大堆
“‘cv::imread(std::__cxx11::basic_string
解决方法为:在用 g++ 编译时加上 `pkg-config opencv --cflags --libs opencv` ,即:
g++ main.cpp -o main‘pkg-config opencv --cflags --libs opencv’
也有些博客写的是:
g++ main.cpp -o main‘pkg-config --cflags --libs opencv’
或者
g++ main.cpp‘pkg-config opencv --cflags --libs opencv’ -o main
不过这个错误有时候又会消失,能编译通过。。。。
最后我只是加了一句 -L/usr/local/lib 就解决了:
g++ main.cpp -o main‘pkg-config opencv --cflags --libs opencv’ -L/usr/local/lib
注意:pkg-config 前面的点,是ESC下面的那个键,而不是单引号!