gpt4 book ai didi

c++ - 在 linux 中使用 codeBlocks 编写 OpenCV 程序时出现运行时错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:29:09 29 4
gpt4 key购买 nike

当我尝试编译一个使用 CodeBlocks 中的 openCV 库的 C++ 程序时,它给我一个运行时错误:

error while loading shared libraries: libopencv_calib3d.so.2.2: 
cannot open shared object file: no such file or directory

尽管我已经使用代码块 IDE 的链接器设置添加了所有必需的库(包括名为 libopencv_calib3d.so.2.2 的符号链接(symbolic link))。

但是我可以通过发出命令使用命令行编译程序:

g++ hello-world.cpp -o hello-world \
-I /usr/local/include/opencv -L /usr/local/lib
\ -lm -lcv -lhighgui -lcvaux

有人可以告诉我如何使用代码块运行相同的程序。

谢谢!

最佳答案

文件 libopencv_calib3d.so.2.2 是 OpenCV 2.2 的一部分。但是,OpenCV 2.2 没有 libcv、libhighgui 或 libcvaux 部分。这意味着您的 g++ 调用链接到 另一个 版本的 OpenCV。

要链接到 OpenCV 2.2,您需要像 -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann 这样的标志

你也不应该手动输入它们,而是使用

export PKG_CONFIG_PATH=/usr/local/share/opencv/:$PKG_CONFIG_PATH
g++ `pkg-config --cflags --libs opencv` hello-world.cpp -o hello-world

关于c++ - 在 linux 中使用 codeBlocks 编写 OpenCV 程序时出现运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6071497/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com