我在Linux和Code上运行OpenCV时遇到了问题.我遵循了说明步骤,但在上编译时仍然失败:
/tmp/ccEkxgny.o: In function `cv::String::~String()':
cam_usb.cpp:(.text._ZN2cv6StringD2Ev[_ZN2cv6StringD5Ev]+0x14): undefined reference to `cv::String::deallocate()'
测试代码很简单:
#include <iostream>
#include <vector>
#include <string>
#include <cstdio>
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
int main()
{
cout << "Test" << endl;
}
无论何时删除OpenCV标头,代码都可以正常执行. C_cpp_Properties.json包含目录按照教程中的说明进行设置,指向正确的安装目录:
{
"configurations": [
{
"name": "Linux",
"includePath": [
** "/home/XXXX/opencv/include/opencv2/**",**
"${workspaceFolder}/**",
"/usr/local/include/**"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "gnu++14",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}
我还链接了tasks.json中的依赖项:
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc build active file",
"command": "/usr/bin/gcc",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}",
** "-lopencv_core",
"-lopencv_imgproc",
"-lopencv_highgui"**
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
],
"version": "2.0.0"
}
尽管如此,错误仍然存在. 遗憾的是,我找不到任何进一步的决议建议,任何帮助都是非常感谢的. 先谢谢你. (对不起,第一次使用Linux CPP OpenCV.:()