我写在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 = - 子系统=窗口。 –