Bonjour,
je crée une dll sous g++
J'ai compris que l'option --out-implib crée le .a associé à la dll.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 file1.dll: $(OBJECTS_DLL1) g++ -shared -o $@ $^ -Wl,--out-implib=libfile1.a
Cependant, quand je veux utiliser cette dll, que je compile comme ça
ou comme ça (et du coup sans avoir besoin de l'option --out-implib=libfile1.a dans la compilation de ma dll)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 executable.exe: $(OBJECTS_MAIN) g++ -o $@ main.o -Wl,--enable-auto-import -L. -lfile1
, j'obtiens la même chose.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 executable.exe: $(OBJECTS_MAIN) g++ -o $@ main.o -Wl,--enable-auto-import ./file1.dll
Je ne comprends pas le besoin de faire un .a pour une dll (excepté que dans le premier cas, je reste compatible avec une compilation avec ou sans dll) ? Je vois bien que dans le cas d'utilisation de dll, on trouve souvent le .lib ou le .a associé, mais je ne saisis pas son intérêt.
Si quelqu'un veut bien m'expliquer la différence ? Merci.
Flo.
Partager