На скрытый символ `__udivti3 'в ... / libgcc.a ссылается DSO - PullRequest
0 голосов
/ 18 марта 2019

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

...