Файл libportaudio.la
, который, по вашему мнению, является библиотекой PortAudio, которую вы только что создали, не является библиотекой.
$ file libportaudio.la
libportaudio.la: libtool library file, ASCII text
Это текстовый файл пар ключ-значение, который генерируется libtool
для облегчения независимой от платформы связи с реальной библиотекой в GNU autotools проектах, таких как сам PortAudio.Вы можете открыть его в текстовом редакторе и прочитать его.
Реальные (статические и динамические) библиотеки PortAudio, которые вы создали:
./configure
make
, расположены в скрытом подкаталоге:
portaudio/lib/.libs
, что обычно для библиотек, созданных с помощью автоинструментов.Ожидается, что после make
вы запустите make install
(как root
), который скопирует библиотеки и связанные с ними заголовочные файлы в каталоги установки по умолчанию или альтернативные, которые вы указали с помощью:
./configure PREFIX=<prefix_dir>
Как вы говорите, вы не запускали make install
.Если вы хотите связать программу с libportaudio
, в то время как статические и динамические библиотеки остаются только в каталоге сборки, вам необходимо:
$ g++ test.cpp -I"portaudio_dir/include" -L"portaudio_dir/lib/.libs" -lportaudio
Но помните, что даже если вы успешно связываете такую программу сдинамическая библиотека portaudio_?.dll
, эта программа не сможет загрузить DLL во время выполнения , если только загрузчик ОС не сможет найти DLL с помощью стандартного алгоритма поиска DLL
Самый простой- но не обязательно лучший - способ убедиться, что DLL найдена во время выполнения, - это скопировать ее в тот же каталог, что и ваша программа.