【问题标题】:What does gcc linking option / LOCAL_CFLAGS -rdynamic dogcc 链接选项 / LOCAL_CFLAGS -rdynamic 有什么作用
【发布时间】:2017-01-20 15:07:36
【问题描述】:

我正在开发一个 android NDK 项目。当我尝试修改项目文件(Android.mk)时,我在阅读参考后发现链接选项-rdynamic,我仍然不确定标志的含义。

我正在进行的项目。它有两个部分: - 多个客户端应用程序。 - 多个共享库。 (每个客户端都有对应的共享库) - 后台守护进程:进程管理器和启动器。

首先,一个客户端应用程序。一旦客户端开始运行,它就能够与管理器进程进行通信。管理器将使用 dlopen() 根据启动器进程加载相应的共享库。之后,管理器将创建一个新的启动器进程。

感觉链接标志与后台进程有关,但不确定。

谢谢


参考:
https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html#Link-Options
-r动态
在支持它的目标上将标志 -export-dynamic 传递给 ELF 链接器。这指示链接器将所有符号(不仅是使用的符号)添加到动态符号表中。 dlopen 的某些用途或允许从程序中获取回溯时需要此选项。

【问题讨论】:

    标签: c gcc android-ndk linker


    【解决方案1】:

    -rdynamic 添加到LOCAL_CFLAGS 不会有任何作用,因为-rdynamic 是一个链接器标志。您需要将其添加到LOCAL_LDFLAGS

    有关-rdynamic 的更详尽解释,请参阅https://stackoverflow.com/a/12636790/632035(我知道问题不一样,但答案很好地解释了标志)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-14
      • 2012-01-27
      • 2018-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多