私は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'])
は、多くの可能性は、私がやった、ない成功事例の。 以下、私のSConstructファイルの一部を投稿します。 ご迷惑をおかけして申し訳ございません。すべてのための
おかげでenv.Append(LINKFLAGS = [ '/ W1を'、 '/ SUBSYSTEM:WINDOWS'])
# 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')`
警告レベルを設定するために使用されるコンパイラフラグのようです。少なくともそれはリンカーフラグとして文書化されていません。すでにCCFLAGSに警告レベルを設定しているので、「wl」を取り除くだけです。 – Luke