我寫在D.它與LDC2編譯器編譯,使用配音配置(目標類型:可執行文件)的應用程序時,沒有打開控制檯。編譯後的程序會創建一個控制檯窗口,因爲應用程序使用GUI框架,所以我不需要該窗口。我需要一種方法來防止創建控制檯窗口。如何開始寫在d
唯一的其他例子我知道有類似的行爲編譯具有mingw64-GCC,其具有-mwindows標誌C/C++程序時。我不知道類似的D程序。配音配置和ldc編譯器標誌都沒有做我想做的事情。有誰知道該怎麼辦?即使另一個編譯器可以工作,如果它至少做我想要的。
當應用程序從CMD或PowerShell中打開時,沒有額外的控制檯被打開。只有當我從Windows GUI啓動應用程序時纔會出現此問題。
dub.json:
{
description (author etc.)
"targetType": "executable",
"platforms": [
"windows"
],
"dependencies": {
....
},
"versions" : [
....
],
"libs" : [
....
],
"dflags": [
"-m32",
"-static",
"-release"
]
}
編譯命令:
dub run --compiler=ldc2.exe
解:
附加連接標誌作爲dub.json如下
"lflags":[
"-subsystem:windows",
"-entry:mainCRTStartup"
]
這會刪除在程序啓動時彈出的控制檯,如果該程序未從另一個控制檯運行。它也支持通常的d main(void main()等),不需要winmain入口點。 (如果你只是離開進入標誌的是,可以使用)
在你配音的配置文件,您可以添加一個'「LFLAGS」:「/子系統:窗戶」]'選項,它應該這樣做。 ...但我不確定這是否適用於ldc2,你可以嘗試一下並讓我知道嗎?具體的語法可能會略有不同,堆棧溢出對我來說可能是''-Wl, - 子系統,windows「'。 –
沒有工作。我試着配音lflags [/子..]和dflags -L = - 子系統=窗口。 –