GCC Отладка Флаги SCons

0

Я использовал qmake до сих пор, и он передал правильные флаги для GCC для генерации отладочной информации при компиляции без меня, когда мне когда-либо приходилось беспокоиться о передаче правильных флагов. Теперь я должен использовать SCons из-за потребностей проекта, и я еще не привык к этому. Как передать флаги отладки в GCC с помощью SCons, чтобы GCC мог генерировать отладочную информацию для GDB? (Кстати, я уже пробовал '-g', но это не сработало).

Спасибо заранее любому, кто отвечает!

  • 0
    Какую версию SCons вы используете? Вы просматривали эту документацию -> scons.org/doc/1.0.1/HTML/scons-user/x1392.html ?
  • 0
    Как вы уже пытались передать '-g' в GCC?
Теги:
build
flags
scons

2 ответа

3

Вы можете добавить опции в командную строку SCons с помощью AddOption. Например, ваш SConstruct может выглядеть так:

AddOption('--dbg', action='append_const', dest='cflags', const='-g')
AddOption('--opt', action='append_const', dest='cflags', const='-O2')

env = Environment()
env.MergeFlags(GetOption('cflags'))

SConscript('SConscript', exports={'env':env})

Ваш SConscript не изменится:

Import('env')
env.Program('foo.c')

Вы управляете компиляцией параметрами командной строки для scons:

$ scons -Q
gcc -o foo.o -c foo.c
gcc -o foo foo.o
$ scons -Q --dbg
gcc -o foo.o -c -g foo.c
gcc -o foo foo.o
$ scons -Q --opt
gcc -o foo.o -c -O2 foo.c
gcc -o foo foo.o

Справка:

3

Чтобы передать флаги в компилятор, вы можете установить одну из следующих переменных построения SCons.

CPPFLAGS

Пользовательские параметры препроцессора C

CFLAGS

Общие параметры, которые передаются компилятору C (только C, а не C++).

CCFLAGS

Общие параметры, которые передаются компиляторам C и C++

CXXFLAGS

Общие параметры, которые передаются компилятору C++

Например, если вы используете только C++, вы можете сделать следующее:

env = Environment()
env.Append(CXXFLAGS='-g')
env.Program(target='yourTarget', source='yourSource.cc')

Ещё вопросы

Сообщество Overcoder
Наверх
Меню