0

我正在尝试在可视代码工作室(ubuntu)中使用 Opencv 在 C++ 中编写代码。

我按照下一个教程编译了opencv:http: //www.codebind.com/cpp-tutorial/install-opencv-ubuntu-cpp/

而且我想使用 Visual code studio,但我无法让它工作。

我的 cpp 代码如下:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

// using namespace cv;
// using namespace std;

int main(int argc, char const *argv[])
 {
std::cout << "Hello World\n";

cv::Mat image;
image = cv::imread("image.jpg");   // Read the file
// namedWindow("show image",WINDOW_AUTOSIZE);
//imshow("show image", image);


std::cin.get();
return 0;
}

我的 c_cpp_propierties.json 文件是下一个:

{
"configurations": [
    {
        "name": "Linux",
        "browse": {
            "path": [
                "/opt/opencv/include/opencv",
                "${workspaceFolder}"
            ],
            "limitSymbolsToIncludedHeaders": true
        },
        "includePath": [
            "/opt/opencv/include/opencv",
            "${workspaceFolder}/**"
        ],
        "defines": [],
        "compilerPath": "/usr/bin/gcc",
        "cStandard": "c11",
        "cppStandard": "c++17",
        "intelliSenseMode": "clang-x64"
    }
  ],
  "version": 4
}

任务json是

{
    "version": "2.0.0",
    "tasks": [
    {
        "label": "build hello world",
        "type": "shell",
        "command": "g++",
        "args": [
            "-g", "canny.cpp"
        ],
        "group": {
            "kind": "build",
            "isDefault": true
        }
    }
]
}

当我编译代码时,我收到以下输出:

执行任务:g++ -g canny.cpp <

/tmp/cc01zEdA.o: 在函数main': /home/beaa/Estudio/CPP/basicOpenCV/canny.cpp:13: undefined reference tocv::imread(cv::String const&, int)' /tmp/cc01zEdA.o: 在函数cv::String::String(char const*)': /usr/local/include/opencv2/core/cvstd.hpp:597: undefined reference tocv::String::allocate(unsigned long)' /tmp/cc01zEdA.o : 在函数cv::String::~String()': /usr/local/include/opencv2/core/cvstd.hpp:643: undefined reference tocv::String::deallocate()' /tmp/cc01zEdA.o: 在函数cv::Mat::~Mat()': /usr/local/include/opencv2/core/mat.inl.hpp:682: undefined reference tocv::fastFree(void*)' /tmp/cc01zEdA.o: 在函数cv::Mat::release()': /usr/local/include/opencv2/core/mat.inl.hpp:794: undefined reference tocv::Mat::deallocate()' /tmp/cc01zEdA.o: 在函数cv::Mat::operator=(cv::Mat&&)': /usr/local/include/opencv2/core/mat.inl.hpp:1357: undefined reference tocv::fastFree(void*)' collect2: 错误: ld 返回 1 退出状态 El proceso del terminal finalizó con el código de salida: 1

如您所见,我使用 gcc 作为编译器。

我想找不到 opencv 路由,但我试图修复它,但我无法解决。

提前致谢

4

1 回答 1

0

在 ubuntu 中编译一个 opencv cpp 代码其实很简单。您可以使用此链接来执行此操作。http://answers.opencv.org/question/25642/how-to-compile-basic-opencv-program-in-c-in-ubuntu/

您需要下载 opencv 文件并将其提取到某个位置,编写 cpp 代码,并在从命令行运行时提供 opencv 包含和 lib 路径。

如果在您的情况下在 ubuntu 中使用 Visual Studio 不是强制性的,您可以使用所描述的过程。

于 2018-05-30T20:56:42.637 回答