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.

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