Сборка OpenCV завершается неудачно в Ubuntu 24.04 с «фатальной ошибкой: stdlib.h: нет такого файла или каталога», несмотLinux

Ответить
Anonymous
 Сборка OpenCV завершается неудачно в Ubuntu 24.04 с «фатальной ошибкой: stdlib.h: нет такого файла или каталога», несмот

Сообщение Anonymous »

Я получил последнюю версию OpenCV (4.12.0) с дополнительными модулями из репозитория GitHub, но не могу собрать ее в Linux (ubuntu 24).
Используя CMake (3.28), сборка систематически выдает:

/usr/include/c++/13/cstdlib:79:15: фатальная ошибка: stdlib.h: такого файла или каталога нет

...

#include_next

Я пробовал с gcc 12 и 13. stdlib.h на самом деле есть в /usr/include/c++/13/ (упоминается в ошибке) и /usr/include/.

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

g++ -v -E -x c++ /dev/null
дает:

#include "..." поиск начинается здесь:

#include поиск начинается здесь:

/usr/include/c++/13

/usr/include/x86_64-linux-gnu/c++/13

/usr/include/c++/13/backward

/usr/lib/gcc/x86_64-linux-gnu/13/include

/usr/local/include

/usr/include/x86_64-linux-gnu

/usr/include

Конец поиска list.

Есть очень старые упоминания об одной и той же ошибке, связанной с использованием предварительно скомпилированных заголовков, но сейчас эта опция отключена по умолчанию (Ошибка компиляции OpenCV, фатальная ошибка: stdlib.h: Нет такого файла или каталога, https://answers.opencv.org/question/116 ... h-missing/, https://www.linuxquestions.org/question ... 175627331/).
Для теперь я строю, следуя этой процедуре:

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

cd 
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
mkdir opencv_build
mkdir opencv_install
из cmake-gui:
  • установите каталог сборки opencv_build
  • установите CMAKE_INSTALL_PREFIX на opencv_install
  • установите OPENCV_EXTRA_MODULES_PATH на opencv_contrib/modules
  • установите для OPENCV_ENABLE_NONFREE значение «Вкл.»
  • установите для With_CUDA значение «Вкл.» (хотя в данном случае это кажется бессмысленным)
  • настройте и сгенерируйте
Затем:

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

cmake --build ./opencv_build --target install
Я также пробовал использовать другой стандарт C++ (11 (по умолчанию), 17 и 20).
Почему сборка завершается с ошибкой, когда stdlib.h явно существует в ожидаемом месте, и как я могу решить эту проблему?
Дополнительный контекст:
  • Одна и та же сборка работает в Windows как с MSVC, так и с GCC.
    />
  • Я мог бы собрать предыдущую версию OpenCV 4 на Ubuntu 22.04 на том же оборудовании


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

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

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

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

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

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