Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
静态OpenCV库中未定义的引用 我有一个C++项目,使用OpenCV 3.1,使用共享的LIBA程序工作得很好。但现在我想使用静态库(位于项目目录中的一个文件夹中)编译它,因为我希望能够在未安装OpenCV的地方导出它(并在必要时进行编辑和重新编译)_C++_Opencv_Ubuntu_Static Libraries_Opencv3.1 - Fatal编程技术网

静态OpenCV库中未定义的引用 我有一个C++项目,使用OpenCV 3.1,使用共享的LIBA程序工作得很好。但现在我想使用静态库(位于项目目录中的一个文件夹中)编译它,因为我希望能够在未安装OpenCV的地方导出它(并在必要时进行编辑和重新编译)

静态OpenCV库中未定义的引用 我有一个C++项目,使用OpenCV 3.1,使用共享的LIBA程序工作得很好。但现在我想使用静态库(位于项目目录中的一个文件夹中)编译它,因为我希望能够在未安装OpenCV的地方导出它(并在必要时进行编辑和重新编译),c++,opencv,ubuntu,static-libraries,opencv3.1,C++,Opencv,Ubuntu,Static Libraries,Opencv3.1,这次我重新编译了OpenCV,将共享库设置为否: make -DCMAKE_BUILD_TYPE=RELEASE -DBUILD_SHARED_LIBS=NO -DCMAKE_INSTALL_PREFIX=~/Desktop/ocv .. 然后我取了我需要的图书馆: libopencv_core.a libopencv_imgproc.a libopencv_highgui.a libopencv_video.a libopencv_imgcodecs.a libopencv_v

这次我重新编译了OpenCV,将共享库设置为否:

make -DCMAKE_BUILD_TYPE=RELEASE -DBUILD_SHARED_LIBS=NO -DCMAKE_INSTALL_PREFIX=~/Desktop/ocv ..
然后我取了我需要的图书馆:

libopencv_core.a   libopencv_imgproc.a    libopencv_highgui.a
libopencv_video.a  libopencv_imgcodecs.a  libopencv_videoio.a
并运行
g++a.cpp libopencv_core.a
其中
a.cpp
是一个示例程序,用于测试是否一切正常:

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
    Mat a;
    printf("hello world\n" );
    return 0;
}
等等。我找遍了,找不到丢失的东西。非常感谢您的帮助


p、 s.G++和Ubuntu版本:
G++(Ubuntu 4.8.4-2ubuntu1~14.04.3)4.8.4

您还需要链接pthread库。并将其作为
-pthread

g++ a.cpp libopencv_core.a -pthread
您缺少包含所需代码的其他库。必须有一个
libippicv.a
,其中包含
ippicv*
函数的代码

g++ a.cpp libopencv_core.a libippicv.a -pthread

它应该在第三方LIB中的某个位置

@user3286661我搜索并添加了它,但像往常一样,我必须查找一些gz-lib-->libopencv_-core.a(persistence.cpp.o):在函数
icvPuts(CvFileStorage*,char-const*)”:persistence.cpp:(.text.\uzl7icvputsp13cvfilestoragepkc+0x22b):对
gzputs'@Leo的未定义引用您现在可能需要libgzip了。此外,指定库的顺序也很重要。所以也许你也应该看看这个。当其他人读到这篇文章时,@LeonardoLanchas正在做一个静态构建。因此,他不仅要链接静态opencv库,还要链接opencv所需的第三方库。从错误中,猜测下一步需要哪个库,添加它,您将看到错误将减少。
g++ a.cpp libopencv_core.a libippicv.a -pthread