2016-06-15 2 views
0

Другая компания дает мне три файла (demo.c, api.h, libapi.so). они сказали мне, что этого достаточно для развития. Я путаюсь, как строить эти вещи вместе. Я использую gcc demo.c -o demo -l libapi.so. Но сказано: «ld: library not found». Я использую систему Mac OS. Некоторые веб-сайты сказали, что я должен использовать Linux для использования файла .so. что мне делать?Как скомпилировать файл .c .h .so?

+2

'.so' файлы а не OSX. '-l libapi.so'? Попробуйте флаг '-lapi'. Вам также может потребоваться указать путь поиска для нестандартной библиотеки '-L. /' (Это означает, что она находится в текущем каталоге). – user3078414

+0

Если такой файл находится в вашем текущем каталоге try -l ./libapi.so –

+0

Как уже было сказано, это не относится к встроенным системам! – Olaf

ответ

-1

* .so «общий объект» работает только на Linux. Аналогий Windows * .so является DLL. Это комбинированный объектный код.

То, что вы должны сделать, это 1] "компилировать" ваш .c на .o [объектный файл] 2] "Ссылка" новый .o файл с .so в

+2

Могут быть другие системы, которые используют расширение '.so'. – Olaf

+0

Solaris использует '.so' для общих объектов; так же как и AIX, IIRC. И нормальным расширением Mac OS X являются '.dylib' и' .bundle'. –

Смежные вопросы