сборка с ++ в режиме отладки с биокодом cmake

Поскольку я не могу переключиться с выпуска на отладочный тип сборки, мне интересно, что я делаю неправильно. Я работаю с Unix Makefiles.

В docs.biicode.com/c++/building.html рассказывается, как добавление SET () в CMakeLists.txt добавляет переменные в cmake.

Я новичок в cmake и biicode, и я попробовал все:

ADD_DEFINITIONS(-DCMAKE_BUILD_TYPE=Debug)
ADD_DEFINITIONS(-DCMAKE_BUILD_TYPE:STRING=Debug)
SET(CMAKE_BUILD_TYPE Debug)
target_compile_options(my_program PUBLIC $<$<CONFIG:Debug>:-Werror>)

но GDB говорит, что «символы отладки не найдены».

Другой способ, как говорится bii --help cpp, передает в cpp: параметры сборки, которые будут переданы в cmake, но вызывает

bii cpp:build -DCMAKE_BUILD_TYPE=Debug

доходность

Building: cmake --build . -DCMAKE_BUILD_TYPE=Debug
Unknown argument -DCMAKE_BUILD_TYPE=Debug

но звонит прямо

cmake -DCMAKE_BUILD_TYPE=Debug --build .

работает нормально, и я не знаю, как изменить порядок в bii cpp:build команда.

Является ли все это заблуждением, синтаксической ошибкой или что-то еще не так? Какое место лучше всего поменять между Debug и Release?

6

Решение

От биокод документы, похоже, вам нужно использовать bii cpp:configure команда для передачи аргументов в CMake, а не bii cpp:build,

Как прокомментировал @ruslo, не рекомендуется устанавливать CMAKE_BUILD_TYPE внутри фактического CMakeLists.txt (увидеть его ответ для более подробной информации), так что вы, вероятно, хотите сделать:

bii cpp:configure -DCMAKE_BUILD_TYPE=Debug
bii cpp:build

Я понимаю, что вы сказали, что работаете с make-файлами Unix, но если вы использовали генератор мультиконфигурации (например, Visual Studio), тип сборки не устанавливается во время настройки. Скорее это устанавливается во время сборки. В этом случае я бы ожидал, что команды biicode будут больше похожи на:

bii cpp:configure -G "Visual Studio 12 Win64"bii cpp:build --config Debug
10

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector