Sì, puoi farlo, praticamente come lo hai tu.
C:\Code\bgi\obj>lib /out:libbgi.lib *.obj
LIB (lib.exe) viene utilizzato per creare librerie statiche. LINK (link.exe /DLL) viene utilizzato per creare librerie dinamiche (crea il file .dll e una libreria di importazione .lib).
C:\Code\bgi\obj>link /DLL /out:bgi.dll *.obj [additional libs]
Quando si utilizza il comando link /DLL
, ulteriore Win32 e C++ standard di librerie di runtime sarà richiesto (come MSVCRT.lib e User32.lib ecc e librerie MFC).
In questo caso; questo sembra essere il corretto argomento del linker;
C:\Code\bgi\obj>link /DLL /out:bgi.dll *.obj MSVCRTD.lib User32.lib Gdi32.lib ole32.lib Comdlg32.lib OleAut32.lib
Nota: i file oggetto costruite sono le versioni di debug, quindi MSVCRTD.lib (nota D) è quella di usare qui. Con i comandi sopra, sono riuscito a collegare sia un file .dll che un file .lib statico.
Ulteriori percorsi di inclusione e libreria;
Quando si distribuiscono queste uscite per altre build, potrebbe essere necessario includere ulteriori intestazione e percorsi di libreria nella build di destinazione. Per aggiungere ulteriori percorsi ai percorsi di ricerca di inclusione e libreria, è possibile aggiungere le variabili di ambiente (INCLUDE
e LIB
) (per utente o per esteso al sistema), ma possono anche essere specificate sulla riga di comando, tramite /I
e /LIBPATH
come segue ;
cl /IC:\Code\include [additional options] main.cpp
link /LIBPATH:C:\Code\lib [additional options] xyz.lib
Linee guida;
- Avviare un prompt dei comandi di "Visual Studio", dato 2008, ci dovrebbe essere un collegamento nel menu di avvio "Prompt dei comandi di Visual Studio 2008". Questo file batch imposterà l'ambiente corretto per una compilazione C++. Assicurati di abbinare la toolchain corretta per i target x86 o x64.
- Passare alla directory che contiene i file oggetto.
- Esegui il/i comando/i che hai (come sopra).
tuo errore LNK1104
ho il sospetto l'errore che hai, LNK1104, è molto probabilmente perché l'utente non dispone di autorizzazioni sufficienti per essere la scrittura di file all'interno della directory "Programmi". Altrimenti, potrebbe essere un errore utilizzare la toolchain non corretta per il tuo target (x86 vs x64).
In genere è meglio farlo in una directory personale; ad es .: "C: \ Code \ bgi".
Creare un progetto. Aggiungi i file al progetto. La linea di comando è molto meglio però. –
Questo perché non hai impostato correttamente le variabili env. –
Per creare un .lib, utilizzare lib.exe. –