2012-03-19 3 views
0

J'essaie d'utiliser le librsync library dans mon programme Java à travers le JNA. Pour cela, j'ai besoin de pouvoir compiler la bibliothèque librsync dans une DLL. Je sais comment compiler un seul fichier c dans une DLL en utilisant MinGW et pour cela j'ai trouvé beaucoup d'exemples mais je ne sais pas comment le faire pour une grande bibliothèque comme librsync. Est-ce seulement possible?Compilation d'une bibliothèque C dans une DLL avec MinGW

Merci à l'avance, Frank

+0

Puisque vous allez avoir besoin de la compilation de toute façon, vous pouvez aussi utiliser [JavaCPP] (http://code.google.com/p/javacpp/) au lieu de la JNA ... :) Pour info, nous pouvons utiliser MinGW en appelant le 'Builder' avec' java -jar javacpp.jar -properties mingw-x86' –

+0

Via MinGW Shell, allez dans le dossier de distribution extrait de librsync et tapez: './Configure' et' make all check' – ecle

Répondre

1

Je ne sais pas quoi que ce soit précis sur librsync, mais vous devriez être en mesure d'utiliser ld ou gcc --shared comme normal. Cependant, lorsque vous essayez de construire de grandes bibliothèques avec beaucoup de dépendances, il est beaucoup plus simple si vous pouvez utiliser le Makefile existant, et ne faites que de petites modifications.

Donc, votre première étape serait de voir qu'il construit sous MinGW comme il est, puis aller de l'avant et essayer de modifier le Makefile pour faire une dll

0

Qu'est-ce que vous pouvez faire est

  1. Créer votre propre fichier .def exporter les différentes rs* fonctions dont vous avez besoin de : Source
  2. Run dlltool puis gcc pour générer le fichier .dll dont vous avez besoin: Source
Questions connexes