C 使用portaudio和libsndfile的可分发应用程序

C 使用portaudio和libsndfile的可分发应用程序,c,dll,linker,portaudio,libsndfile,C,Dll,Linker,Portaudio,Libsndfile,我用portaudio和libsndfile编写了一个小C程序,它只在我的电脑上运行。在其他系统中,它要求libportaudio.dll和libsndfile.dll。我正在链接-lportaudio和-lsndfile 我想让它在任何地方(窗口)都工作,而不要求这样的东西 如何使此应用程序(.exe)可分发 (我正在使用代码块和Mingw) 提前谢谢 尝试将-static传递给编译器,要求它将库引用设置为静态,而不是动态。您可以通过在二进制文件上运行nm来查看它是否成功地进行了静态链接 当然

我用portaudio和libsndfile编写了一个小C程序,它只在我的电脑上运行。在其他系统中,它要求libportaudio.dll和libsndfile.dll。我正在链接-lportaudio和-lsndfile

我想让它在任何地方(窗口)都工作,而不要求这样的东西

如何使此应用程序(.exe)可分发

(我正在使用代码块和Mingw)


提前谢谢

尝试将
-static
传递给编译器,要求它将库引用设置为静态,而不是动态。您可以通过在二进制文件上运行
nm
来查看它是否成功地进行了静态链接


当然,您还必须确保以这种方式重新分发库不会违反任何许可证。

我试过了。。仍然不工作。。。我甚至尝试使用-l portaudio.dll.a和-l libsndfile.dll.a静态链接,并删除了-lportaudio-lsndfile,然后它给出了对所用函数的未定义引用。。你能提供一些编译方案的例子吗?我相信libsndfile使用LGPL许可证。除非LGPL代码存在静态链接异常,否则不能对其进行静态链接。PortAudio使用MIT许可证,你可以(理论上)静态链接它。