我想尝试一些只在windows中可用的C库,所以我安装了wine和dev C++。
不像在windows上,在我编译并运行后,它成功地生成/编译到“exe”中,但cmd没有显示。
我找到了一种方法,通过启动终端并将
我的命令是
它工作,但需要时间手动启动“exe”。
我如何让dev c++自动在wine中找到cmd并执行编译后的代码?
先谢谢你了。
最新消息:
当我发布这个问题的时候,我是Linux/Ubuntu的新手,这就是为什么我在寻找/期待wine中的功能。但是现在经过2年的时间,我发现wine上运行的代码块是针对Windows的,一旦编译就不能调用ubuntu终端。
2条答案
按热度按时间0kjbasz61#
默认情况下,Dev-C依赖于一个名为
ConsolePauser.exe
的简单文件。该文件调用编译后的.exe
文件,并在退出后给出熟悉的Process exited after 0.xxxxx seconds with return value x.
通知。然而,
ConsolePauser.exe
是一个原生的Windows二进制文件,它不能在Ubuntu中执行,除非被Wine调用。另外,ConsolePauser
调用的是可执行文件的裸名,而不是调用Wine,这是必需的。因此,要让Dev-C在您按下
F9
后自动运行.exe
文件,您需要做的就是构建您自己的ConsolePauser。它所做的只是解析参数,转义所需的字符,并将其传递给Wine。这是一个快速而肮脏的版本,你可以通过检查是否为
argc == 1
来开始改进它。用Ubuntu的编译器将其编译为ConsolePauser.exe
,将其放在你计算机的PATH
中的任何地方,它都应该工作。然而,还有一个问题存在。由于未知的原因,如果被Dev-C++这样的应用程序调用,Ubuntu的可执行文件不会在一个单独的窗口中执行,这与Windows不同。因此,你必须找到一种方法将
ConsolePauser.exe
带到一个新窗口中。一种简单方法是将文件重命名为
ConsolePauser1.exe
,并对ConsolePauser.exe
使用以下代码:把这两个文件放在你的
PATH
中的同一个文件夹里,熟悉的旧控制台暂停器就会像一个魅力一样工作。eh57zj3b2#
我想提交我的方法,尽管它不是Ubuntu特有的,它可以在任何安装了xterm的发行版上工作。将
ConsolePauser.exe
重命名为ConsolePauserEngine.exe
,并在同一目录下创建一个新的ConsolePauser.exe
文本文件,其中包含以下行:编辑:不要忘记将新的
ConsolePauser.exe
设置为可执行文件。