0

我最近安装了 OpenCV(使用 cmake),当我尝试从 sample/c 运行例如 build_all.sh 时,我收到以下错误:

compiling fback_c.c
gcc: error: rt: No such file or directory
gcc: error: pthread: No such file or directory
gcc: error: m: No such file or directory
gcc: error: dl: No such file or directory
......................................
compiling find_obj_calonder.cpp
g++: error: rt: No such file or directory
g++: error: pthread: No such file or directory
g++: error: m: No such file or directory
g++: error: dl: No such file or directory

注意:它们还有更多,但每个文件都相同。

但是当我在来自 sample/cpp 的样本上使用它时,程序实际上会编译:

g++ test.cpp -o test -I/usr/local/include/opencv -I/usr/local/include  -L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann

此外,当我尝试编译 .py 文件时,我收到以下错误

ImportError: No module named cv2

我正在使用 x64 Fedora 19。

我想知道为什么当我使用该命令时程序编译但当我使用默认方法时它不起作用。另外我应该怎么做才能编译 .py ?

4

2 回答 2

0

我对 Fedora Core 不是很熟悉(当我使用它时它仍然只是 RedHat),但是许多现代 Linux 发行版将普通系统库放在 /usr/lib 中并包含在 /usr/include 中。由于您从头开始编译 OpenCV,因此将其放在 /usr/ local /... 中,并且默认情况下不会告诉构建系统和 python 去那里查看。

这就是您的手动 gcc 命令起作用的原因(-I 和 -L 开关告诉 gcc 在 /usr/local/... 中查找)

安装您所做的软件包只需将分发版本安装到 /usr/...,因此虽然它可以工作,但您的系统上实际上有 2 个不同的版本,并且示例和 python 正在使用安装在 /usr/... 中的版本(来自包管理器)不是您的自定义安装。

您可以就自己编译与使用包管理器进行完整的讨论,但现在,如果您决定自己编译,请确保将前缀设置为 /usr 而不是 /usr/local设置您的系统以查看/usr/local 和 /usr。

于 2013-09-26T15:38:11.677 回答
0

好的,所以我再次尝试,这次我从 Software Install 安装了以下软件包

使用 OpenCv 库的开发文件

应用程序的 Python 竞标

. 在他们的官方指示中,他们没有说明这一点。现在它编译没有错误。

于 2013-09-26T15:12:42.020 回答