Скомпилировать и связать стороннюю библиотеку с GCC 4.7.3. Я пытаюсь понять, что вызывает неопределенную ошибку символа:необходимо выяснить, где была создана эта функция (gcc 4.7)
Undefined symbols for architecture x86_64:
"void MyObject::myFunction<....>(...) const", referenced from:
void NameSpace::AnotherFunction<some_particular_arguments>(...) in some_source.cc.o
NameSpace::AnotherFunction
, очевидно, сидит в some_source.cc
, но я могу получить некоторую информацию от компилятора/линкера о том, где/кто экземпляр этой функции с some_particular_arguments
?
Сборка выполняется с использованием CMake и существует NameSpace_AnotherFunction.inst
с экземплярами шаблонов для соответствующей функции, но этого конкретного набора аргументов шаблона нет.
Очевидно, что нет конкретизации в some_source.cc
, в противном случае я бы не спросить;)
Так мне интересно, если есть способ, чтобы получить информацию о чем-то вроде точки Инстанцирование (или аналогичный) для этого списка аргументов частности шаблона функции AnotherFunction
?
найти в файлах?, Это будет работать, если экземпляр, который использует эту функцию, находится в видимом коде. Если в библиотеке нужна другая библиотека, вам понадобится инструмент проверки библиотеки, чтобы найти ссылки на нее. – Raxvan
«Неопределенные символы для архитектуры x86_64» выглядит как сообщение компоновщика, которое распознает неподдерживаемую архитектуру. Может быть, аргумент шаблона, который вы предоставляете, недоступен для x86_64? –
@ Raxvan Я пытался найти его в файлах, но не вижу его. Функция является функцией библиотеки и не нуждается в другой. – Denis