使用MinGW将C库编译为DLL

时间:2012-03-19 12:50:46

标签: java dll mingw jna

我正试图通过JNA在我的java程序中使用librsync library。为此,我需要能够将librsync库编译为dll。我知道如何使用MinGW将单个c文件编译成dll,为此我已经找到了很多例子,但我对如何为像librsync这样的大型库做这件事感到茫然。这甚至可能吗?

提前致谢, 弗兰克

2 个答案:

答案 0 :(得分:1)

我不知道有关librsync的任何具体内容,但您应该能够像往常一样使用ld或gcc --shared。但是,当您尝试构建具有大量依赖关系的大型库时,如果您可以使用现有的Makefile,并且只对其进行少量修改,则非常更简单。

所以你的第一步是看它在MinGW下构建,然后继续尝试修改Makefile来制作一个dll

答案 1 :(得分:0)

你能做的是

  1. 创建您自己的.def文件,从rs*导出所需的各种librsync函数:Source
  2. 运行dlltool,然后运行gcc以生成所需的.dll文件:Source