linux下编译运行python,你能在linux下编译/运行masm吗?

既然我没有代表写评论,我就得回答了。在

你不能用“一个(动态)库来管理它们”的原因是,Windows和Linux认为动态库文件(.dll的,.so's)是可执行的格式。Windows动态库有PE头,Linux不能执行,反之亦然,Linux共享库必须有ELF头,Windows不能执行。你的代码是否100%独立于平台并不重要。在

至于一个静态库,它应该可以使一个既可由Windows和Linux翻译的库。否则,您可以将独立于平台的“lib”组装为通用格式,如COFF或BIN,并将其链接到当前使用的平台上。甚至可以使用某种形式的运行时链接。在

很抱歉,我使用了答案部分,没有提供具体细节。但是,如果您只想在Linux和Windows上创建一个静态lib,它将被内联到代码中,那么这应该是可能的。在

编辑:

在做了一些研究之后,我发现,不可能使用MASM来组装一个平面二进制文件。显然,制定一个是违反EULA的?不管前面描述的使用通用格式的进程如何,MASM都无法使用它,因为它将PE/COFF作为“最低级别”的对象文件生成。在

所以解决办法可以是:;

1) 将您的程序集移植到类似NASM(netwideassembler)这样的程序集,它可以生成平面二进制文件。在

不管你如何得到平面二进制你将不得不

在Linux上:将平面二进制文件链接为ELF可执行文件,应该非常直接。在FLAT BINARY -> ELF EXECUTABLE

在Windows上:将PE/COFF头添加到平面二进制文件中,并将其链接到.exe/.dll文件中。微软有这个过程,基本上,锁定。我找不到任何关于如何做到这一点的例子。但理论上这个过程应该是这样的。在FLAT BINARY > PE/COFF -> WINDOWS EXECUTABLE

QuasarDonkey的方法可能是已决定者的一个选择(这就是我为什么要包括它),但我永远不会推荐它。在

实际上,唯一直接的选择是编译一个Windows库和一个Linux库,使用MASMs-PE/COFF格式作为基础是不实际的:)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值