- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 Solaris 10
上使用 gcc
构建 make
程序,并得到以下信息:
gcc: unrecognized option `-rdynamic'
检查 rdynamic 后在 gcc
文档中,我得到以下解释:
-rdynamic
Pass the flag -export-dynamic to the ELF linker, on targets that support it. This instructs the linker to add all symbols, not only used ones, to the dynamic symbol table. This option is needed for some uses of dlopen or to allow obtaining backtraces from within a program.
我的问题是:
(1) 尽管gcc
打印出“gcc: unrecognized option -rdynamic
”,但构建仍然成功。这是 gcc
的默认行为吗?
(2) 我在 Makefile 中将“-rdynamic
”替换为“-export-dynamic
”,构建成功。这种替代有任何副作用吗?
附言我的 gcc
信息:
bash-3.00# gcc -v
Reading specs from /usr/local/lib/gcc/i386-pc-solaris2.10/3.4.6/specs
Configured with: ../configure --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --enable-shared --enable-languages=c,c++,f77
Thread model: posix
gcc version 3.4.6
最佳答案
您使用的是过时版本的 gcc,但您引用了最新的文档。 gcc-3.4.6 没有这样的链接器选项,请参阅 https://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Link-Options.html .
尝试在链接时使用 -Wl,--export-dynamic
选项。
I replace
-rdynamic
with-export-dynamic
in Makefile, and the build is success. Is there any side-effect of this substitution.
这个选项没有记录,它可能什么都不做,你需要检查 strace
输出它传递给链接器的命令行选项。
关于c - 关于 "gcc: unrecognized option ` -rdynamic'”的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26884574/
为什么 -rdynamic 不导出 .a 文件中的符号,而是导出 .o 文件中的符号? 我在 .so 文件中有一个应用程序和一个插件。主应用程序使用一系列目标文件和一个静态库进行链接,如下所示: CX
场景: 可执行文件在运行时通过 dlopen 加载共享对象。 共享对象引用了一些实际编译到主可执行文件中的符号(函数)。 如果我在链接可执行文件时将 -rdynamic 添加到 gcc,则效果很好。
我如何使用 -rdynamic 标志来确保 glibc 的回溯函数将报告回溯中的实际函数/符号名称? 我正在尝试使用 C's backtrace functions创建回溯。在我的 MacOS 机器上
-rdynamic(或链接器级别的--export-dynamic)究竟做了什么,它与 定义的符号可见性有何关系-fvisibility* 标志或可见性 pragma 和 __attribute__s
我正在用 C 语言构建一个共享库,该库由我没有源代码访问权限的程序动态加载。目标平台是 64 位 Linux 平台,我们使用 gcc 来构建。我能够在大约 100 行内构建该问题的重现,但它仍然有点难
在嵌入式设备(ARM、uClibc)上工作,我有一个静态可执行文件,它与不同的库静态链接,并具有使用 dlopen 的动态加载功能。 set(EXTERNAL_LIBS "-lpthread -lpc
我一直在一个大型 C++ 项目中工作,该项目有一个巨大的源代码,大小接近 300 MB,文件超过 800 个。我想在二进制崩溃时获取调用堆栈,所以我捕获了信号并将调用堆栈从 backtrace_sym
我正在开发一个 Android NDK 项目。当我尝试修改项目文件(Android.mk)时,我在阅读引用资料后发现了链接选项 -rdynamic,但我仍然不确定该标志的含义。 我正在从事的项目。它有
我有一个跨平台项目,需要在 gcc ( about -rdynamic ) 中使用 -rdynamic 编译 .so 文件。 MSVC 是否存在这样的选项? 最佳答案 不需要该标志,因为 Window
我正在编译 C++ 代码,我试图添加 -rdynamic 选项,这样我就可以打印出一个有意义的堆栈跟踪来调试我的 C++ 程序,但是 clang 返回一条警告,说“编译期间未使用的参数:” -rdyn
我找不到任何类似的选项可以将所有函数名称包含到最终发布的二进制文件中。还是 clang 默认执行此操作? 最佳答案 这道题的正确答案是-Wl,-export_dynamic 而不是 -Wl,--exp
查看this question和 this question我可以看到要使 backtrace_symbols() 正常工作,必须使用 -rdynamic 标志进行编译。 我已经在测试程序中尝试过它并
所以我想用 backtrace logging 分发我的 gcc 应用程序对于严重错误。然而,它是对性能非常关键的应用程序,所以我想知道 -g -rdynamic gcc 标志是否会减慢执行速度(特别
我遇到 gcc 编译错误: gcc-4.9: error: unrecognized command line option '-rdynamic' 并且我在某些环境中使用 -rdynamic 测试了
如果我想与 pthread 链接,我可以 -lpthread,对吗? 阅读手册后,我仍然不明白使用 -rdynamic 的原因.. 最佳答案 -pthread 是-D_REENTRANT -lpthr
这是一个非常直接的问题。之间是否有任何区别: -Xlinker --export-dynamic 和 -rdynamic 什么时候传递给 g++?阅读 GNU 文档似乎它们在功能上是相同的,但我想确定
我在 Windows 7 64 位的 Cygwin 下使用 GCC v4.9.2,但在尝试编译时遇到问题 uWSGI . 我收到的错误是 - gcc: error: unrecognized comm
我在 Solaris 10 上使用 gcc 构建 make 程序,并得到以下信息: gcc: unrecognized option `-rdynamic' 检查 rdynamic 后在 gcc 文档
我在 for 循环中有一个简单的数组操作,它针对不同大小(从 16 到非常大)的数组完成,其中包含 double 。我做了几次: for(int i = 1; i < n-1; i++){ t
我在 Windows 7 64 位的 Cygwin 下使用 GCC v4.9.2,但在尝试编译时遇到问题 uWSGI . 我收到的错误是 - gcc: error: unrecognized comm
我是一名优秀的程序员,十分优秀!