如何编译包含OpenCV库的C++代码而不使用Makefile?

6vl6ewon  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(171)

我刚开始学习用C编译OpenCV。我在Linux机器上从源代码构建OpenCV。我使用Visual Studio代码文本编辑器。我想编译包含OpenCV库但不带Makefile的C代码。我将/usr/local/opencv4/**添加到includePath变量。但它不起作用。我收到opencv 2/opencv.hpp错误。是否可以构建包含OpenCV包含但不带Makefile的C++代码?我该怎么做呢?
我的代码

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
  
int main(int argc, char** argv)
{
    Mat image = imread("Enter the Address"
                       "of Input Image",
                       IMREAD_GRAYSCALE);
  
    if (image.empty()) {
        cout << "Image File "
             << "Not Found" << endl;
  
        cin.get();
        return -1;
    }
  
    imshow("Window Name", image);
  
    waitKey(0);
    return 0;
}
kcwpcxri

kcwpcxri1#

你必须告诉编译器头文件和库文件的位置,正如kotatsuyaki所提到的,你可以使用pkg-config为你的。
使用gcc和pkg-config的示例:

g++ *.cpp -o program_name `pkg-config --cflags --libs opencv4`

使用gcc但不使用pkg-config的示例:

g++ *.cpp -o program_name -I/PATH/TO/OPENCV/INCLUDE/FOLDER -L/PATH/TO/OPENCV/LIB/FOLDER -lopencv_something -lopencv_somethingelse ... etc

在带有cl的Windows中,您可以执行与不带pkg-config的g++相同的操作:

cl main.cpp /I"PATH TO OPENCV ICNLUDE FOLDER" /link /LIBPATH:"PATH TO OPENCV LIB FOLDER" opencv_library1.lib opencv_libarary2.lib ... etc.

相关问题