Ho una domanda sul collegamento biblioteca e file lib ...Perché alcuni file DLL richiedono un file .lib aggiuntivo per il collegamento?
Questo è il contesto:
- OS = di Windows
- IDE = QT
Ho creato un DLL: MyLib.dll.
Per utilizzare tale libreria nel mio progetto QT, ho solo per includere un percorso di inclusione, un link alla biblioteca e utilizzare i file di intestazione:
LIBS += "C:\myPath\MyLib.dll"
INCLUDEPATH += "C:\myPath"
HEADERS += \
../myPath/MyLib_global.h \
../myPath/mylib.h
Sto usando una terza dll parte nel mio progetto: terzo .dll
Se faccio lo stesso come nell'esempio di cui sopra, non funziona:
LIBS += "C:\myPath\third.dll"
la terza parte DLL viene fornito con un file lIB "third.lib", che a quanto pare ho bisogno di usare insieme con la DLL.
Perché è quello? Perché alcune librerie DLL hanno bisogno di un file .lib ma altre librerie DLL no?
Potrebbe essere che il .lib sia una libreria statica che accede alla DLL?
Grazie mille!
grazie @ Merlin069 per la risposta. questo lo chiarisce! Una cosa: quando ho creato myLib.dll, non ho visto alcun modo per generare un file lib con il file DLL. è un'opzione quando si crea la DLL? Inoltre, tutte le chiamate di funzione nella mia DLL sembrano essere accessibili anche senza il file lib. Non è ciò che il file .lib dovrebbe consentire? grazie – WewillSee
Ci dovrebbe essere una libreria di importazione per impostazione predefinita. – ExpatEgghead
È probabile che ci sia un'impostazione nell'IDE per creare il file lib, se non lo sta già generando. Per quanto ho capito, senza il file lib, è possibile caricare la DLL separatamente e chiamare le funzioni, ma la lib è richiesta se si vuole costruire un eseguibile con librerie statiche. – TheDarkKnight