我正在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
失败了
您假设是刚刚构建的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的最简单但不一定是最好的方法是将其复制到与程序相同的目录中。