chdir unistd.h дает неопределенную ссылку на символ «chdir@@GLIBC_2.2.5» в Linux

При связывании некоторых объектных файлов с помощьюld, возникает ошибка:

undefined reference to symbol 'chdir@@GLIBC_2.2.5'

undefined reference to symbol 'setlocale@@GLIBC_2.2.5'

Нужно ли мне подключать библиотеку для этой функции? На странице руководства ничего не сказано о ссылках.

1 ответ

C и C++ имеют общее представление о том, что такое стандартная библиотека : это набор библиотек, которые всегда доступны в инструменте сборки C (или C++).

Проблема в том, что это гораздо более общий инструмент: его можно использовать для связывания C, C++, Fortran, языка ассемблера и т. д. Компиляторы знают, как передать загрузчику определенные параметры, чтобы попросить его найти соответствующие библиотеки, но когда вы используете напрямую, вы должны передать их явно.

Альтернативно, избегайте использованияи всегда используйте(илиили как там называется ваш компилятор) даже для простого связывания.

Другие вопросы по тегам