Поскольку я не могу переключиться с выпуска на отладочный тип сборки, мне интересно, что я делаю неправильно. Я работаю с 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?
От биокод документы, похоже, вам нужно использовать 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