gpt4 book ai didi

c++ - -whole-library 不可用时的解决方法

转载 作者:太空宇宙 更新时间:2023-11-04 13:58:48 25 4
gpt4 key购买 nike

我正在尝试在不支持 -Wl,-whole-library 标志的环境中进行编译 (emscripten)。我如何欺骗强制编译器包含导出的符号?该解决方案应尽可能多地满足以下属性:

  • 可以应用于单个库(我不想包含其他库中未使用的符号)
  • 可以自动生成(例如通过 nm 获取导出的符号表?)
  • 会使用函数和成员函数

我想过用这样的东西来计算一个文件:

int x = (int)(&func_a)+(int)(&func_b)+...;

但它不适用于成员函数,成员函数不能转换为 int(并且可以是私有(private)的)。

你有什么想法吗?

最佳答案

想法:

  • 在链接你想要的库之前使用 --whole-library 标志在列出其他库之前添加 -no-whole-library 之后,仅要完全链接,您需要的是尝试使用支持它的链接器添加 --export-dynamic 标志。
  • 然后挖掘 nm/objdump/exportmap 道路 http://accu.org/index.php/journals/1372导出/构建链接信息和使用链接信息 http://runtimecompiledcplusplus.blogspot.fr/使用导出的 map 和代码,以便您可以在代码中模仿 -Wl。

关于c++ - -whole-library 不可用时的解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20162106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com