对我来说,这听起来像是不可能完成的任务,但有些人比我知道的多,所以我想也许我有机会 :)
我想要 1 个可以在 Windows 和 linux 上执行的文件。
基本上,程序可以由两部分组成。
第 1 部分是可以在 Windows 上运行的 Windows 可执行文件。
第 2 部分是可以在 linux 上运行的 linux shell 脚本。
有没有办法以这种方式构建文件,Linux 可以忽略 Windows 二进制可执行字节,只运行作为文本附加到二进制 Windows 可执行文件的 shell 脚本?
我试图在 windows exe 之前添加字节,当然 windows 无法识别该文件。所以是的,我不能在可执行文件的字节之前放任何东西,但是我可以在文件末尾添加它们。
然后,在 linux 上,我采用了纯脚本
#!/bin/bash
echo "Hello world?"
exit 0
并在脚本之前添加了一些文本。它所做的只是抱怨不存在的命令,但继续执行该文件,我得到了“hello world”文本输出。
把这两件事放在一起(cat runLinuxPart.sh >> myMix.exe
)chmod +x myMix.exe
然后运行它,我得到The entry point method could not be loaded
:(
linux shell 文件是一种自解压安装程序。它把 .tar 放在最后,把脚本放在前面,所以如果我在 linux 上运行 .sh,它会得到 .tar,提取并完成我需要的一切。
windows exe的目的是连接远程linux机器,从自身提取.sh文件并上传到linux,然后运行它。
我想给用户一个单独的安装文件。
如果这是我的梦想是不可能的,我当然也可以接受 2 个单独的安装程序