使用静态库在MinGW中编译共享DLL

时间:2014-06-12 13:37:41

标签: dll static mingw shared msys

我正在尝试为librsvg创建一个不需要任何其他DLL的DLL,并且可以在MSVC应用程序中使用。使用MinGW / MSYS我编译了librsvg(及其20个依赖项)并生成了一个DLL,但所有库都是共享的,最终我需要21个DLL。我已经阅读并尝试了许多文章,并使用链接器标志-static尝试了许多不同的方案。我在所有依赖项上使用了--enable-static,并为每个依赖项生成了.a静态库。但是,我似乎无法达到最终目标。在编译librsvg时,我可以使用共享库生成DLL,或者我可以为它创建一个共享库而不创建DLL - 我无法达到单个DLL的目标。我还走了手动更改librsvg的makefile并将所有-l {library}行更改为library.a的路径,并且由于libtool的问题,最终从未得到过干净的编译。如果这是正确的道路,我会继续;但是,似乎libtool的全部目的是在不需要修改makefile的情况下实现这个目标。有没有更好的办法?这甚至可能吗?

0 个答案:

没有答案