我正在使用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