gpt4 book ai didi

c++ - 链接 OpenCV 4.1.0,包括作品,库不

转载 作者:搜寻专家 更新时间:2023-10-31 01:26:31 27 4
gpt4 key购买 nike

将 Ubuntu 从 16.04 更改为 18.04 并将 OpenCV 从 3.4.1 更改为 4.1.0 后,我无法编译...任何东西

一步一步:

我从github下载了源代码,设置了那些标志:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules cmake -DENABLE_PRECOMPILED_HEADERS=OFF -DBUILD_opencv_cudacodec=OFF -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_CUDA=ON -D WITH_TBB=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D WITH_QT=OFF -D BUILD_SHARED_LIBS=OFF ..

编译安装

接下来,我创建了一个简单的程序:

#include "opencv2/highgui.hpp"
#include <opencv2/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
cout << "V: " << CV_VERSION << endl;
return 0;
}

用这个命令编译它:

g++ -std=c++11 main.cpp `pkg-config --libs --cflags opencv4` -g -o main

并获得工作的可执行文件 main:

V: 4.1.0-pre

但是当我用 Mat 添加一行时

#include "opencv2/highgui.hpp"
#include <opencv2/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
cout << "V: " << CV_VERSION << endl;
Mat frame;
return 0;
}

我得到的错误多于我的终端可以显示的

我想,像 libopencv_core.a 这样的文件没有链接

这种链接库的方法对我一直有效,我不知道在哪里寻找错误

有什么线索、建议吗?

编辑:

这是我的错误的开始(完整错误包含 +4500 行,如果有必要我可以添加包含完整错误的 .txt)

/usr/local/lib/libopencv_core.a(system.cpp.o): In function `cv::ipp::getIPPSingleton()':
system.cpp:(.text._ZN2cv3ippL15getIPPSingletonEv+0xdb): undefined reference to `ippicvGetCpuFeatures'
system.cpp:(.text._ZN2cv3ippL15getIPPSingletonEv+0x16e): undefined reference to `ippicvSetCpuFeatures'
system.cpp:(.text._ZN2cv3ippL15getIPPSingletonEv+0x173): undefined reference to `ippicvGetEnabledCpuFeatures'
system.cpp:(.text._ZN2cv3ippL15getIPPSingletonEv+0x1ba): undefined reference to `ippicviGetLibVersion'
system.cpp:(.text._ZN2cv3ippL15getIPPSingletonEv+0x263): undefined reference to `pthread_mutexattr_init'
system.cpp:(.text._ZN2cv3ippL15getIPPSingletonEv+0x270): undefined reference to `pthread_mutexattr_settype'
system.cpp:(.text._ZN2cv3ippL15getIPPSingletonEv+0x283): undefined reference to `pthread_mutexattr_destroy'
system.cpp:(.text._ZN2cv3ippL15getIPPSingletonEv+0x2a1): undefined reference to `ippicvInit'
/usr/local/lib/libopencv_core.a(system.cpp.o): In function `cv::getInitializationMutex()':
system.cpp:(.text._ZN2cv22getInitializationMutexEv+0x63): undefined reference to `pthread_mutexattr_init'
system.cpp:(.text._ZN2cv22getInitializationMutexEv+0x70): undefined reference to `pthread_mutexattr_settype'
system.cpp:(.text._ZN2cv22getInitializationMutexEv+0x83): undefined reference to `pthread_mutexattr_destroy'

最佳答案

我会在 bash 中运行 pkg-config --libs --cflags opencv4 并检查链接器参数是否正确,以及路径/库是否存在。 make install 应该告诉您库被复制到哪里(/usr/local/lib 或类似的东西)。如果 #include 有效,包含目录通常设置正确。

关于c++ - 链接 OpenCV 4.1.0,包括作品,库不,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55242450/

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