Почему возникает ошибка при использовании CLion build OpenCV после настройки и генерации CMake?

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

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

По данным реактивные мозги. Эта функция будет исправлена, но неизвестно когда. Генератор по умолчанию CLion 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

Почему вас беспокоит то, что CLion делает внутри, чтобы ваш код работал? Пожалуйста, уточните это более подробно, так как кажется, что ваша реальная проблема заключается в чем-то другом.

Stanley F. 08.04.2019 16:19

Пожалуйста, не рассматривайте отрицательные голоса (кстати, это не от меня) как оскорбление, а скорее как убедительный признак того, что качество вопроса должно быть улучшено. Мой комментарий предназначен как подсказка, чтобы помочь вам улучшить свой вопрос. Я делать хочу вам помочь и дать качественный ответ. Но для этого мне нужно правильно понять вашу проблему и, следовательно, мне нужна дополнительная информация.

Stanley F. 09.04.2019 10:53

Как я предполагаю, CLion автоматически добавит параметр -G и не может быть удален. Но вы знаете, что когда я пытаюсь собрать исходный код OpenCV в CLion. Есть много предупреждений о том, что perf_precomp.hppprecomp.hpptest_precomp.hpp связаны с этим параметром. Потому что, когда я использую командную строку cmake, ошибок снова нет. Я думаю, что это может быть та же проблема, что и github.com/sakra/cotire/issues/124.

EricLu 09.04.2019 11:56
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
259
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы ответить на ваш вопрос: вы не можете изменить генератор 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. Но вместо того, чтобы спросить об этом и предоставить необходимую информацию в своем вопросе, вы были «спрашивая о вашей попытке решения, а не о вашей реальной проблеме».

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

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

Вы указали, где проблема, но почему генератор CMake CodeBlocks сделает это, нам пока неизвестно. Честно говоря, спасибо за ваше время и действительно постарайтесь помочь мне решить проблему. Прошу прощения за мои оскорбительные выражения.

EricLu 09.04.2019 16:13

@EricLu Вы правы, причина сообщений об ошибках до сих пор не ясна. Однако похоже, что это не связано с генератором, поскольку при запуске CMake из командной строки ошибка не возникает: cmake -H/tmp/opencv -B/tmp/opencv/build -G "CodeBlocks - Unix Makefiles"

Stanley F. 10.04.2019 06:35

Извините, вы правы, это действительно похоже на магию Клиона. С системой генератора блоков кода ошибка не может произойти, моя ошибка.

EricLu 10.04.2019 15:47

Другие вопросы по теме