Почему возникает ошибка при использовании CLion build OpenCV после конфигурации и генерации CMake? - PullRequest
0 голосов
/ 08 апреля 2019

Я нашел в Clion cmake всегда добавить параметр -G "CodeBlocks - Unix Makefiles".Это сделало поколение camke другим при использовании cmake ../

Как видите, я не добавил ни одного параметра в настройках CMake.Но CLion добавляет -G "CodeBlocks - Unix Makefiles".

Согласно jetbrains .Эта функция будет исправлена, но не знаю, когда генератором по умолчанию CMCL CMake будет CodeBlocks - Makefiles.

Если вы соберете OpenCV с помощью CLion, вы, наконец, найдете ошибку CMake, как показано ниже.Это вызвано -G "CodeBlocks - Unix Makefiles"

Problems were encountered while collecting compiler information:
cc1plus: fatal error: /--/--/cmake-build-release/modules/calib3d/perf_precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/calib3d/perf_precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/calib3d/perf_precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/calib3d/perf_precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/calib3d/perf_precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/calib3d/perf_precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory
cc1plus: fatal error: /--/--/cmake-build-release/modules/core/precomp.hpp: No such file or directory

1 Ответ

2 голосов
/ 09 апреля 2019

Чтобы ответить на ваш вопрос: вы не можете изменить генератор make-файлов в CLion, и вам не нужно это делать.

Позвольте мне объяснить, почему:

Если вы внимательно прочитаете вывод,перед всеми сообщениями об ошибках вы увидите следующее:

-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/opencv/cmake-build-debug

Это означает, что фактическая конфигурация проекта CMake прошла успешно.Кроме того, CLion заполняет раскрывающийся список «Run / Debug Configuration» множеством целей.Конфигурация CMake просто прекрасна, вы можете кодировать, компилировать и запускать все.Если бы CMake потерпел неудачу, это было бы не так.

Однако, после завершения CMake, CLion хочет выполнить дополнительную магию (я не знаю об этом).И вот откуда все сообщения об ошибках.

Чтобы избавиться от него, вы должны добавить следующий флажок к опциям CMake в диалоге конфигурации CMake:

-DENABLE_PRECOMPILED_HEADERS=OFF.

Кстати: тип сборки определяется через выпадающее меню параметра «Тип сборки:», нет необходимости устанавливать его заново в настройках CMake.


В заключение: Ваш вопрос является типичным случаем XY-проблемы .Вы хотите решить проблему, указанную в сообщениях об ошибках, выдаваемых CLion.Но вместо того, чтобы спрашивать об этом и предоставлять необходимую информацию в своем вопросе, вы «спрашивали о вашем попытанном решении, а не о вашей реальной проблеме».

Я только что нашел недостающую информацию в вашемответ на сообщение, а не на вопрос, где бы он ни находился.Так что было бы здорово, если бы вы могли объединить свои посты в исчерпывающий вопрос.

Это не означает, что вы не должны быть грубыми или оскорбительными.Я просто хочу дать вам подсказку о том, как вы можете улучшить свои вопросы, чтобы не допустить голосования или остаться без ответа.

...