c - .../libgcc.a 中的隐藏符号“__udivti3”被 DSO 引用
问题描述
我正在尝试在 Ubuntu 18 上使用 CMake 和 Clang 编译一个简单的可执行文件。一些来自第三方源并编译为共享库 libtommath__udivti3
的代码最终会在编译器进行一些代码优化后调用该函数。
在链接时,我有一个来自 ld 的错误说hidden symbol "__udivti3" in /usr/lib/gcc/x86_64-linux-gnu/7/libgcc.a(_udivdi3.o) is referenced by DSO
我做了一些研究,感谢这个链接,这有效地意味着__udivti3
共享库引用了它,但它不能从 libgcc.a 中使用,因为它在这个库中被标记为隐藏。
我的问题是无论我尝试修复它,链接总是失败。我试图链接libgcc_s
位于同一目录中的哪个,但clang抱怨它找不到它。但另一方面,编译和链接在 MacOS 上可以完美运行,但那个有问题的符号仍然存在。
解决方案
推荐阅读
- git - Vscode git快捷方式“ctrl + enter to commit on master”在Linux mint上不起作用
- html - CSS:下拉菜单被容器的溢出属性隐藏
- algorithm - 使用两个堆栈分隔偶数奇数
- wordpress - 如何在woocommerce中设置最小订单重量?
- google-maps - Flutter:如何在谷歌地图上将 mylocation 按钮放置在不同的位置?
- javascript - 如何使完整的按钮处理数据?平均提交
- android-layout - 如何使所有过滤器在轻按颤动时都不会改变颜色
- neo4j - 如何连接 Nest.js 和 NEO4j
- python-3.x - 为什么连接样式时会出现两个窗口?
- javascript - Azure Function / Typescript - 等待函数完成处理每个文档