如何使用 Mingw link .la 文件
How to link an .la file using Mingw
我正在 Windows 10 下构建 portaudio,但我不知道如何 link 我的 portaudio
构建目录下的 libportaudio.la
文件。
我使用 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
生成的键值对文本文件,方便平台无关
linkGNU autotools 中实际图书馆的年龄
项目,例如 PortAudio 本身。您可以在文本编辑器中打开并阅读。
您构建的真实(静态和动态)PortAudio 库:
./configure
make
位于隐藏的子目录中:
portaudio/lib/.libs
这对于使用 autotools 构建的库来说很常见。预计之后
make
您将 运行 make install
(如 root
),这将复制库
及其关联的头文件到默认安装目录,或者
您指定的替代选项:
./configure PREFIX=<prefix_dir>
正如你所说,你没有 运行 make install
。如果你想 link 一个针对 libportaudio
的程序
而静态库和动态库只保留在构建目录中,您需要:
$ g++ test.cpp -I"portaudio_dir/include" -L"portaudio_dir/lib/.libs" -lportaudio
但请记住,即使您成功地 link 像这样针对动态的程序
库 portaudio_?.dll
,该程序将无法在 运行 时间 加载 DLL
除非 OS 加载程序可以通过其 standard DLL search algorithm
找到 DLL
确保在 运行 时找到 DLL 的最简单但不一定是最好的方法是
将其复制到与您的程序相同的目录中。
我正在 Windows 10 下构建 portaudio,但我不知道如何 link 我的 portaudio
构建目录下的 libportaudio.la
文件。
我使用 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
生成的键值对文本文件,方便平台无关
linkGNU autotools 中实际图书馆的年龄
项目,例如 PortAudio 本身。您可以在文本编辑器中打开并阅读。
您构建的真实(静态和动态)PortAudio 库:
./configure
make
位于隐藏的子目录中:
portaudio/lib/.libs
这对于使用 autotools 构建的库来说很常见。预计之后
make
您将 运行 make install
(如 root
),这将复制库
及其关联的头文件到默认安装目录,或者
您指定的替代选项:
./configure PREFIX=<prefix_dir>
正如你所说,你没有 运行 make install
。如果你想 link 一个针对 libportaudio
的程序
而静态库和动态库只保留在构建目录中,您需要:
$ g++ test.cpp -I"portaudio_dir/include" -L"portaudio_dir/lib/.libs" -lportaudio
但请记住,即使您成功地 link 像这样针对动态的程序
库 portaudio_?.dll
,该程序将无法在 运行 时间 加载 DLL
除非 OS 加载程序可以通过其 standard DLL search algorithm
确保在 运行 时找到 DLL 的最简单但不一定是最好的方法是 将其复制到与您的程序相同的目录中。