如何使用Mingw链接.la文件

时间:2019-03-08 17:13:13

标签: g++ mingw dynamic-linking portaudio lib

我正在Windows 10下构建portaudio,但我不知道如何在libportaudio.la构建目录下链接portaudio文件。

我将MSYS与MinGW结合使用来构建端口音频,如下:http://portaudio.com/docs/v19-doxydocs/compile_windows_mingw.html

(但是我没有make install

我在cmd中的构建命令是:

g++ test.cpp -I"portaudio_dir/include" -L"portaudio_dir/lib" -lportaudio

,失败并显示cannot find lportaudio

1 个答案:

答案 0 :(得分:0)

您假设文件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 除非操作系统加载程序可以通过其standard DLL search algorithm

找到DLL

确保在运行时找到DLL的最简单(但不一定最好)的方法是: 将其复制到与程序相同的目录中。