我正在开发一个Android NDK项目。当我尝试修改项目文件(Android.mk)时,我在读取引用后找到了链接选项-rdynamic,我仍然不确定该标志的含义。
我正在进行的项目。它有两个部分: - 多个客户端应用程序 - 多个共享库。 (每个客户端都有一个相应的共享库) - 后台守护程序进程:进程管理器和启动程序。
首先,客户端应用程序。客户端开始运行后,就可以与管理器进程通信。管理器将使用dlopen()根据启动程序进程加载相应的共享库。之后,经理将创建一个新的启动程序。
我觉得链接标志与后台进程有关,但不确定。
由于
参考:
https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html#Link-Options
-rdynamic
将标志-export-dynamic传递给支持它的目标上的ELF链接器。这指示链接器将所有符号(不仅是已使用的符号)添加到动态符号表中。 dlopen的某些用途需要此选项,或允许从程序中获取回溯。
答案 0 :(得分:1)
将-rdynamic
添加到LOCAL_CFLAGS
将不会执行任何操作,因为-rdynamic
是链接器标志。您需要将其添加到LOCAL_LDFLAGS
。
有关-rdynamic
的详尽说明,请参阅https://stackoverflow.com/a/12636790/632035(我知道问题不一样,但答案很好地解释了旗帜。)