簡體   English   中英

GCC調試標志SCons

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM