我正在尝试在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
我做了一些研究,由于有了link,这实际上意味着共享库引用了__udivti3
,但是不能从libgcc.a中使用它,因为它被标记为隐藏在该库中
我的问题是我尝试解决此问题,但链接始终失败。我试图链接到位于同一目录中的libgcc_s
,但是clang抱怨找不到它。但是,另一方面,编译和链接在MacOS上也能完美运行,而该问题符号仍然存在。