我正在学习 C#,所以我做了一个 C# 小程序,上面写着Hello, World!
,然后用以下命令编译mono-csc
并运行它mono
:
$ mono-csc Hello.cs
$ mono Hello.exe
Hello, World!
Run Code Online (Sandbox Code Playgroud)
我注意到当我TAB
输入bash
,Hello.exe
被标记为可执行文件。事实上,它只通过一个加载文件名的 shell 运行!
Hello.exe
是不是有一个有趣的文件扩展名的ELF文件:
$ readelf -a Hello.exe
readelf: Error: Not an ELF file - it has the wrong magic bytes at the start
$ xxd Hello.exe | head -n1
00000000: 4d5a 9000 0300 0000 0400 0000 ffff 0000 MZ..............
Run Code Online (Sandbox Code Playgroud)
MZ
意味着它是 Microsoft Windows 静态链接的可执行文件。把它放到一个 Windows 盒子上,它就会(应该)运行。
我已经wine
安装了,但是wine
,是用于的Windows应用程序的兼容层,需时约5倍,只要运行 …
当我想运行一个葡萄酒程序时,我必须输入例如
$ wine ~/.wine/drive_c/Program\ Files/TextAloud/TextAloudMP3.exe
可以直接运行TextAloudMP3
吗?我的意思不仅是从命令行(我可以创建别名),而且是在整个图形环境中。我正在用dmenu
.