2013-04-29 13 views
9

Utilizzando Visual Studio 2010, desidero specificare un percorso in un commento #pragma (lib) relativo al file cpp che lo include.Percorso relativo con #pragma comment (lib)

ho cercato

#pragma comment(lib, __FILE__"\\..\\foo.lib") 

in foo.cpp e sembra a lavorare. Tuttavia, questo mi sembra un hacker.

C'è un modo meno enfatico?

risposta

6

No, non se questo deve essere relativo da un file .cpp. Il che è piuttosto inusuale, normalmente non è possibile garantire che un .lib sia stato distribuito in una directory relativa a un codice sorgente client che utilizza la libreria. Anche se puoi certamente dare istruzioni per l'installazione che lo prevedono.

Il modo normale è solo specificare "foo.lib" e avere il linker configurato per cercare la directory corretta per il file .lib con l'impostazione Directory aggiuntive. Il che consente a .lib di essere distribuito ovunque, ma l'utente della biblioteca dovrà aggiornare l'impostazione quando imposta il suo progetto. Questo è altrimenti un compito di configurazione molto normale. E non molto diverso dalla specifica della libreria nell'impostazione Dipendenze aggiuntive.

Ricordare che #pragma è in genere più utile per aiutare il programmatore del client a utilizzare la versione corretta di una libreria di collegamenti statici. Normalmente devi fornire 4 build di un .lib statico, debug vs release e/MT vs/MD. Probabilmente moltiplicato per il numero di versioni VS che sei disposto a supportare. Questo può diventare peloso in fretta. Le macro predefinite _DLL, _DEBUG e _MSC_VER consentono di generare il #pragma corretto.

Problemi correlati