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, языка ассемблера и т. д. Компиляторы знают, как передать загрузчику определенные параметры, чтобы попросить его найти соответствующие библиотеки, но когда вы используете напрямую, вы должны передать их явно.
Альтернативно, избегайте использования