如何使用Mingw链接.la文件

问题描述 投票:1回答:1

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

我使用MSYS和MinGW来构建portaudio,接下来是: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失败了

g++ mingw dynamic-linking portaudio lib
1个回答
0
投票

您假设是刚刚构建的PortAudio库的文件libportaudio.la不是库。

$ file libportaudio.la 
libportaudio.la: libtool library file, ASCII text

它是libtool生成的键值对的文本文件,以促进GNU autotools项目中实际库的平台无关链接,例如PortAudio本身。您可以在文本编辑器中打开它并阅读它。

您构建的真实(静态和动态)PortAudio库:

./configure
make

位于隐藏的子目录中:

portaudio/lib/.libs

这对于使用autotools构建的库来说是很常见的。预计在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,除非OS加载程序可以通过其standard DLL search algorithm找到DLL

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

© www.soinside.com 2019 - 2024. All rights reserved.