c++ - Jetson TK1/OpenCV4Tegra 链接器错误

标签 c++ opencv cuda tegra

<分区>

我有一个程序可以在我的机器上正常编译/运行。我刚拿起一个 Nvidia Jetson TK1 来尝试在上面运行它。我刷到最新版本的 linux4tegra,按照说明安装了 cuda 和 opencv herehere .每当我尝试运行我的 make 文件时,我都会遇到链接器错误:

(.text+0x94): undefined reference to `cv::VideoCapture::VideoCapture(std::string const&)'
(.text+0xb2): undefined reference to `cv::VideoCapture::isOpened() const'
(.text+0xcc): undefined reference to `cv::VideoCapture::~VideoCapture()'
(.text+0x108): undefined reference to `cv::namedWindow(std::string const&, int)'
(.text+0x146): undefined reference to `vtable for cv::VideoCapture'
(.text+0x14a): undefined reference to `vtable for cv::VideoCapture'

我已经符号链接(symbolic link)了一些 cuda SO,但我不知道这些是从哪里来的。

我的 makefile 看起来像:

g++ `pkg-config --libs opencv` ...

包配置返回:

$ pkg-config --libs opencv
/usr/lib/libopencv_calib3d.so /usr/lib/libopencv_contrib.so /usr/lib/libopencv_core.so /usr/lib/libopencv_features2d.so /usr/lib/libopencv_flann.so /usr/lib/libopencv_gpu.so /usr/lib/libopencv_highgui.so /usr/lib/libopencv_imgproc.so /usr/lib/libopencv_legacy.so /usr/lib/libopencv_ml.so /usr/lib/libopencv_objdetect.so /usr/lib/libopencv_photo.so /usr/lib/libopencv_stitching.so /usr/lib/libopencv_superres.so /usr/lib/libopencv_ts.a /usr/lib/libopencv_video.so /usr/lib/libopencv_videostab.so /usr/lib/libopencv_esm_panorama.so /usr/lib/libopencv_facedetect.so /usr/lib/libopencv_imuvstab.so /usr/lib/libopencv_tegra.so /usr/lib/libopencv_vstab.so -lcufft -lnpps -lnppi -lnppc -lcudart -lrt -lpthread -lm -ldl  

有什么想法吗?我最初的想法是 header /SO 不匹配,但由于这些都来自同一个包中的 nvidia,我认为这不太可能。

最佳答案

原来我在 make 文件中的文件之后需要 pkg-config --libs opencv

关于c++ - Jetson TK1/OpenCV4Tegra 链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29658561/

相关文章:

c++ - 使用嵌套结构是否相关?

cuda - __match_any_sync 在计算能力 6 上的替代方案是什么?

c++ - 是否可以在测试后检查代码覆盖率是否增加

c++ - 跟踪这个递归代码

visual-studio-2010 - OpenCV 2.3.1 Windows 静态库是否依赖于 zlib?

c++ - 没有 try_key 的灰色图像

c++ - 遇到非法内存访问

c - 宏参数不会接受传递的参数(nvcc)

c++ - 如何在自定义容器中支持范围适配器?

c++ - 使用 Opencv 加载 12 位原始灰度图像