[英]GCC Debug Flags SCons
到目前為止,我一直在使用qmake,它為GCC傳遞了正確的標志,以便在編譯時生成調試信息,而無需擔心傳遞正確的標志。 現在,由於項目的需要,我不得不使用SCons,但我還沒有習慣。 如何使用SCons將調試標志傳遞給GCC,以便GCC可以為GDB生成調試信息? (順便說一句,我已經嘗試過'-g'
,但是沒有用。)
在此先感謝任何答復!
要將標志傳遞給編譯器,可以設置以下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')
您可以使用AddOption
將選項添加到SCons命令行。 例如,您的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
參考:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.