我正在使用scons編譯我的C++應用程序禁用控制檯窗口,但我無法完成此操作。 在互聯網和StackOverflow搜索,我發現這條線將工作
env.Append(LINKFLAGS=['-Wl,-subsystem,windows'])
問題是我總是收到一條警告消息,該行被忽略。 這是消息:隱藏控制檯窗口LNK4044警告
LINK : warning LNK4044: unrecognized option '/Wl,-subsystem,windows'; ignored
我已經嘗試過: env.Append(LINKFLAGS=['-Wl,-subsystem:windows'])
env.Append(LINKFLAGS='-Wl,-subsystem,windows')
env.Append(LINKFLAGS=['/Wl,-subsystem,windows'])
env.Append(LINKFLAGS=['/Wl,-subsystem:windows'])
就像你注意到沒有,許多可能性我已經做了,但沒有sucess。 下面我張貼我的SConstruct文件的一部分。 任何幫助非常感謝。
感謝所有回覆
# GNU GCC
if 'gcc' in env[ 'compiler' ]:
env.Append(CCFLAGS='-Wall', CPPDEFINES=['GCC'])
if int(debug):
env.Append(CCFLAGS='-g', LINKFLAGS='-g')
else:
env.Append(CCFLAGS='-O2', LINKFLAGS='-O2')`
# MSVC v9
elif 'msvc' in env['compiler']:
env.Append(LINKCOM=[ 'mt.exe -nologo -manifest ${TARGET}.manifest -outputresource:$TARGET;1' ])
env.Append(SHLINKCOM=[ 'mt.exe -nologo -manifest ${TARGET}.manifest -outputresource:$TARGET;2' ])
env.Append(CCFLAGS='/W3 /EHsc', CPPDEFINES=[ 'WIN32', 'WINDOWS', 'MSVC', '_CRT_SECURE_NO_WARNINGS' ])
env.Append(CPPDEFINES='MSVC_DLL')
env.Append(LIBS = 'WS2_32')
env.AppendUnique(LINKFLAGS=['-Wl,-subsystem,windows'])
if int(debug):
env.Append(CCFLAGS='/Od /RTC1 /MDd /Gy /Zi', LINKFLAGS='/DEBUG')
else:
env.Append(CCFLAGS='/O2 /Oi /GL /MD', LINKFLAGS='/LTCG')`
wl似乎是一個用於設置警告級別的編譯器標誌;至少它沒有被記錄爲鏈接器標誌。由於您已經在CCFLAGS中設置了警告級別,因此請刪除「wl」。 – Luke