Semplice; non puoi GCC non ha questo equivalente. Specificare -l come parametro gcc, creare uno script linker, chiamare ld
, chiamare il 911 o qualsiasi altra cosa.
Non che un tale pragma abbia senso. Le librerie dovrebbero essere specificate durante la fase di collegamento. Tali informazioni semplicemente non appartengono all'interno di un'unità di traduzione. Un'unità di traduzione può essere preelaborata, compilata e assemblata anche senza una fase di collegamento. La toolchain utilizzata da Visual Studio lo consente perché è Braindead e sempre esegue il collegamento.
Si potrebbe desiderare di risparmiare un po 'di battitura noioso e creare un makefile per il progetto: GNU Make Manual
fonte
2009-11-06 03:35:57
Negli ultimi decenni è diventato popolare per i programmatori progettare i file .h e .lib per avere un qualche tipo di relazione tra loro. In tal caso, ha senso che un file .h contenga un pragma che dice al linker di collegare il file .lib corrispondente. Sicuro gcc non ce l'ha, ma questo non significa che non ha senso. –
Quindi si assume che le librerie non richiedano percorsi aggiuntivi né flag durante il collegamento. Questo è principalmente vero su Windows, quindi perché la pragma "funziona" nell'ambiente di Visual Studio. Le altre direttive di gcc sono almeno coerenti tra i diversi tipi di Linux/Solaris/BSD, purché si utilizzi la stessa versione di gcc. I percorsi sono comunque, no. Questo è il motivo per cui ha perfettamente senso separare la fase di costruzione negli script di configurazione o nei makefile. Non ha nulla a che fare con le unità di traduzione. Prova a portare il software a volte ;-) –
@Mads: Il fatto che Unix sia una piattaforma fratturata che richiede la separazione delle fasi di generazione e collegamento e tutto il dolore che ne consegue, non è una giustificazione per cestinare il modo in cui Windows lo fa, che è molto più facile da gestire e consente agli implementatori di librerie di eliminare quel dolore dai loro utenti. L'idea che l'approccio Unix sia più difficile ma migliore è il puro masochismo irrazionale. –