首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以在linux上动态加载可执行文件吗?

我可以在linux上动态加载可执行文件吗?
EN

Stack Overflow用户
提问于 2011-06-15 00:22:19
回答 2查看 4.9K关注 0票数 1

我写了一个小测试框架,使用'nm‘来检查共享库和寻找测试函数。然后,我使用Python的ctypes库动态加载共享对象并执行测试函数。有没有办法用可执行文件做到这一点?当我在可执行模块上尝试相同的技巧时,Python报告它无法动态加载可执行文件。

EN

回答 2

Stack Overflow用户

发布于 2011-06-15 00:27:41

如果这是您自己的应用程序,您可以重新安排构建,以便您的可执行文件只有main() { real_main(); },而real_main()libapp.so中。然后,您可以使用现有代码测试libapp.so

如果可以加载另一个可执行文件,则可能需要加载ld.so并让它完成工作。如果您运行/lib/ld-linux.so (在Linux上),它将打印包含信息的节。

票数 3
EN

Stack Overflow用户

发布于 2011-06-15 01:51:27

尝试使用-pie选项链接可执行文件(如果可以这样做的话)。

(在this feature request上找到了此选项,用于添加对dlopen可执行文件的支持-- dlopen用于加载共享对象)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6346757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档