G++, по-видимому, не может включать библиотеку opencv, несмотря на указание полного пути к opencv.hpp [дубликат]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 G++, по-видимому, не может включать библиотеку opencv, несмотря на указание полного пути к opencv.hpp [дубликат]

Сообщение Anonymous »

Следует отметить, что я использую Ubuntu 22.04, g++ — версия 11.4.0, использую редактор neovim и загрузил opencv с помощью

Код: Выделить всё

apt install libopencv-dev
Приведенный ниже код — это тот код, который я использую, скопированный со страницы «Начало работы» веб-сайта opencv:

Код: Выделить всё

#include 
#include 
using namespace cv;
int main() {
std::string image_path = "Downloads/my-image.jpeg";
Mat img = imread(image_path, IMREAD_COLOR);

imshow("Display window", img);
int k = waitKey(0); // Wait for a keystroke in the window
return 0;
}
Когда я впервые попробовал его скомпилировать, я получил сообщение об ошибке «не удалось найти файл или каталог opencv2/opencv.hpp», но я исправил это после указания полного пути. Единственная проблема в том, что мне пришлось сделать это примерно для более чем 40 разных файлов .hpp в каталоге opencv2. Я всегда компилировал с помощью g++ opencv.cc -o opencv, и каждый раз он выдавал одну и ту же ошибку «не удалось найти», но указывал на другой файл, который я затем редактировал.
После этого болезненного процесса я наконец смог скомпилировать файл opencv.cc... по крайней мере, я так думал. Ниже приведена ошибка (переведенная на английский язык), которую я получаю после запуска той же базовой команды g++, что и выше:

Код: Выделить всё

/usr/bin/ld: /tmp/ccMkLdrJ.o: in function "main":
opencv.cc:(.text+0x74): reference not set to "cv::imread(std::__cxx11::basic_string const&, int)"
/usr/bin/ld: opencv.cc:(.text+0xd2): reference not set to "cv::imshow(std::__cxx11::basic_string const&, cv::_InputArray const&)"
/usr/bin/ld: opencv.cc:(.text+0x109): reference not set to "cv::waitKey(int)"
/usr/bin/ld: opencv.cc:(.text+0x120): reference not set to "cv::Mat::~Mat()"
/usr/bin/ld: opencv.cc:(.text+0x1bc): reference not set to "cv::Mat::~Mat()"
collect2: error: ld returned 1 exit status
Странно, я думаю, что по какой-то причине он просто не смог включить файл opencv.hpp... даже несмотря на то, что каждый (по крайней мере, те, которые компилятор не смог найти) #include к файлу в каталоге opencv2 теперь представляет собой полный путь, начинающийся с usr/. Я понятия не имею, что делать и что здесь происходит. Любая помощь приветствуется. Извините за неправильное форматирование.

Подробнее здесь: https://stackoverflow.com/questions/798 ... ectory-pat
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»