Bonjour,
Je ne suis pas sûr d'être dans le bon forum, mais bon voilà, ma question concerne au final le C#.
(Changez la rubrique du post si vous pensez que cela doit être fait).

Voici l'exposé de mon problème. Je voudrais faire un projet en C# qui tourne autour du protocole industriel iec61850.
Mais j'ai besoin d'une librairie open-source que j'ai beaucoup de mal à compiler.

Cette librairie, c'est libiec61850 de mz-automation qui a été écrite en C : la voici :
https://github.com/mz-automation/libiec61850
On apprend dans l'intro qu'il est possible de la compiler en .DLL pour C#.
Et mz-automation fournit aussi un wrapper pour .Net qui permet d'utiliser facilement toutes les fonctions de la librairie en C#.

Cette librairie est d'ailleurs utilisée (sous forme de DLL aussi, mais ancienne et incomplète) dans le magnifique logiciel open-source IED-Explorer (hébergé avec des exécutables sur SourceForge) : programme qui marche très bien au demeurant.

J'ai pris mon courage à deux mains, et j'ai tenté de compiler libiec61850.
(Autre remarque, même si je vais utiliser cette DLL sous Windows, j'ai une intuition qui me dit que ce sera plus facile de produire cette DLL sous Linux).

Voici mon mode opératoire (sous Ubuntu), mais je n'arrive pas à atteindre l'objectif final.

1) d'abord je me suis assuré d'avoir un compilateur cross-platform, j'ai fait :
sudo apt-get install gcc-mingw-w64

2) ensuite, j'ai vérifié que j'ai un cmake récent :
cmake --version
3.28.3

3) J'ai téléchargé le SDK de WinPcap, càd WpdPack_4_1_2.zip dont j'extrais le contenu Lib et Include et je les place dans les sources :
Third_Party/WinPcap/

4) je crée alors un dossier build dans le dossier racine de la librairie : ./libiec61850/build
je vais dans ce dossier build et je fais : CMake avec les deux points. Ces deux points vont chercher en réalité CMakeLists.txt un niveau plus haut :
cmake ..

5) cela semble construire correctement un fichier make, dirait-on.

6) ensuite je me place à nouveau dans le dossier ./libiec61850/build, et de là, dans mon terminal, je fais :
make TARGET=WIN32

7) là, j'ai un magnifique défilé de compilation, apparemment sans aucun message d'erreur (cool), et cela semble
me construire :
- un fichier compilé nommé libiec61850.so de 1,1 Mo.
- un fichier compilé nommé libiec61850.so.1.6.0 de 1,1 Mo.
- un fichier compilé nommé libiec61850.a de 1,8 Mo.

Mais aucune DLL ?

J'ai cherché partout des exemples de compilation, mais je ne sais toujours pas comment compiler en DLL à mon stade de connaissance ?
Quelqu'un peut me dire quelle commande je dois insérer ou modifier pour obtenir cette fameuse librairie au format libiec61850.dll ?

Un grand merci d'avance pour votre aide.