В Solaris 10 я создаю библиотеку A.so, которая вызывает функцию f(), которая определена в библиотеке B.so. Чтобы скомпилировать библиотеку A.so, я объявляю в своем коде f() как extern.Как обнаружить неразрешенный символ при создании библиотеки?
К сожалению, я «забыл» объявить в make-файле A, что он должен связываться с B. Однако «make A» не вызывает никаких предупреждений, ошибок и библиотеки A.so.
Конечно, при выполнении кода A вызывается вызов f(), поскольку он не определен.
Есть ли способ (вариант компоновщика, трюк кода ...), чтобы сделать компиляцию библиотеки A неудачной? Как я могу убедиться, что все символы, упомянутые в библиотеке A, определены во время компиляции?
Спасибо за любые предложения.
1-й ответ в http://stackoverflow.com/questions/1617286/easy-check-for-unresolved-symbols-in-shared-libraries на самом деле то, что я искал. – Simon