【发布时间】:2014-09-24 16:42:37
【问题描述】:
所以我可以制作 python 脚本,它将汇编代码传递给“as”标准输入,并通过“ld”标准输出获取生成的二进制文件。
更新:
我已经尝试过'-o /dev/stdout',但这不起作用:
as -o /dev/stdout test.s test.s:汇编器消息: test.s:致命错误:无法写入 /dev/stdout:非法搜索 test.s:致命错误:无法关闭 /dev/stdout:非法搜索更新二:
你为什么要做这样的事情?
想要为 gsasl 创建 python 绑定。动态生成机器代码以将其用作以某种方式调用 python 可调用对象的回调(对于 gsasl_callback_set)。使用标准输出而不是临时文件以获得更高的安全性和性能。只是我的疯狂想法之一.. 因为使用 SWIG 进行回调并不那么容易.. 目前正在尝试与 Vala 和 Gir 一起玩,也许这会是更通用的方式.. 我不想使用是有原因的赛通。
【问题讨论】:
-
只需使用
-o /dev/stdout,它应该可以工作。你必须让as对其他事情保持沉默。你的意思并不完全清楚。 as 可以被多次调用来创建一个对象。然后它们都链接在一起。也许你可以使用as -o /dev/stdout | objcopy -i /dev/stdin。 -
你不能。他们需要随机访问他们的输出文件。现在,你为什么要做这样的事情?
标签: ld gnu-assembler