Невозможно создать общую библиотеку из-за «Нет такого файла или каталога»

#c #shared-libraries

#c #общие библиотеки

Вопрос:

Я пытаюсь объединить два файла foo.c bar.c в динамически связанную библиотеку foobar.so . Я использую команду:

gcc -shared foobar.so foo.c bar.c

Но я получаю сообщение об ошибке:

gcc: error: foobar.so: No such file or directory

foo.c и bar.c оба содержат одно определение функции, и все. В каталоге нет других файлов.

Комментарии:

1. Вы можете найти параметры командной строки, описанные в руководстве

Ответ №1:

Вам необходимо передать имя выходного файла с параметром -o:

 gcc -shared -o foobar.so foo.c bar.c
 

В противном случае gcc подумает, что foobar.so это также входной файл.

Комментарии:

1. спасибо, похоже, что руководство, которому я следовал, было неправильным