Я пытаюсь скомпилировать простой исполняемый файл, используя CMake и Clang в Ubuntu 18. Некоторый код, поступающий из стороннего источника и скомпилированный как общая библиотека 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, и этот проблемный символ все еще присутствует.