gcc链接选项/ LOCAL_CFLAGS -rdynamic做什么

时间:2016-09-13 05:37:18

标签: c gcc android-ndk linker

我正在开发一个Android NDK项目。当我尝试修改项目文件(Android.mk)时,我在读取引用后找到了链接选项-rdynamic,我仍然不确定该标志的含义。

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

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

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

由于

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

1 个答案:

答案 0 :(得分:1)

-rdynamic添加到LOCAL_CFLAGS将不会执行任何操作,因为-rdynamic是链接器标志。您需要将其添加到LOCAL_LDFLAGS

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