回帖:印象中mac下需要app bundle才能做纯GUI,而app bundle双击就是不会出命令行的。要用命令行得用命令行手敲进bundle里面,所以好做。
windows不好弄。subsystem=console一定会开命令行。而subsystem=windows一定没有命令行。有没有命令行是链接时决定的,不是运行时决定的。
之前在公司用过一个windows上的软件(名字不便透露,是客户提供的)是做成弹出命令行但是后续自行关闭的这种,不过我升级windows11之后这个软件关闭命令行的功能失效了,可能是我把默认终端改成了windows terminal导致接口不一样的原因。
我的思路是全平台双可执行程序,如果满足开gui的条件,则在main函数里直接exec到gui程序里。
exec在Windows上是开新进程的,应该可以满足中止终端程序的要求,而在unix系列系统里(macos就是)则是就地将命令行程序替换为gui程序。