build2 собрать разные конфигурации
Я создал исполняемый файл по умолчанию,
bdep new -t exe -l c++,cpp hello
отредактировалhello.cpp
,
#include <iostream>
int main (int argc, char* argv[]) {
using namespace std;
#ifdef NDEBUG
cout << "Debug: off\n";
#else
cout << "Debug: on\n";
#endif
}
создал два конфига (отладочный и релизный),
cd hello/
bdep config create ../hello-debug @debug cc config.cxx=g++ config.cxx.coptions=-g
bdep config create ../hello-release @releasecc config.cxx=g++ config.cxx.coptions=-O3
и инициализировал оба.
bdep init @debug @release
затем я бегу
bdep update @debug
и когда я запускаю программу, я получаю .
Но теперь я хочу собрать исполняемый файл в режиме выпуска.
bdep update @release
но я все еще получаюDebug: on
выход.
Как переключать конфигурации вbuild2
1 ответ
NDEBUG
- это стандартизированный флаг препроцессора, который вы не добавляете в конфигурацию «выпуска».
Это можно сделать, добавивconfig.cxx.poptions=-DNDEBUG
к вашей конфигурации.
bdep config create ../hello-release config.cxx.poptions=-DNDEBUG ..
Подробнее см. здесь https://build2.org/build2-toolchain/doc/build2-toolchain-intro.xhtml.