main.cpp:(.text+0x51): undefined reference to `cv::imread(std::__cxx11::basic_string, std::allocator > const&, int)'
This error occurs because the OpenCV library is not properly linked in your C++ program. To resolve this issue, follow these steps:
Include the OpenCV header file in your C++ program:
cpp #include <opencv2/opencv.hpp>
Link the OpenCV library during compilation: Add the following compilation flags when compiling your program.
g++ -o your_program_name your_program.cpp `pkg-config --cflags --libs opencv`
Make sure your OpenCV installation is correct: Ensure that OpenCV is installed on your system. You can check the installation path and version using the following command:
pkg-config --modversion opencv
Use the appropriate namespace in your code: Add the following line after your includes to use the OpenCV namespace:
cpp using namespace cv;
Verify the image file path: Double-check that the file path you're passing to the
imread
function is correct.
Here's an example combining all the steps:
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
// Verify the image file path is correct
std::string imagePath = "path/to/your/image.jpg";
// Read the image using imread
Mat image = imread(imagePath, IMREAD_COLOR);
if (image.empty()) {
// Handle error if the image cannot be loaded
return -1;
}
// Your further processing goes here
return 0;
}
Remember to replace "path/to/your/image.jpg"
with the actual path to your image file. Additionally, make sure to adjust the compilation command according to your build system.