C 使用portaudio和libsndfile的可分发应用程序
我用portaudio和libsndfile编写了一个小C程序,它只在我的电脑上运行。在其他系统中,它要求libportaudio.dll和libsndfile.dll。我正在链接-lportaudio和-lsndfile 我想让它在任何地方(窗口)都工作,而不要求这样的东西 如何使此应用程序(.exe)可分发 (我正在使用代码块和Mingw)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来查看它是否成功地进行了静态链接 当然
提前谢谢 尝试将
-static
传递给编译器,要求它将库引用设置为静态,而不是动态。您可以通过在二进制文件上运行nm
来查看它是否成功地进行了静态链接
当然,您还必须确保以这种方式重新分发库不会违反任何许可证。我试过了。。仍然不工作。。。我甚至尝试使用-l portaudio.dll.a和-l libsndfile.dll.a静态链接,并删除了-lportaudio-lsndfile,然后它给出了对所用函数的未定义引用。。你能提供一些编译方案的例子吗?我相信libsndfile使用LGPL许可证。除非LGPL代码存在静态链接异常,否则不能对其进行静态链接。PortAudio使用MIT许可证,你可以(理论上)静态链接它。