2009-05-01 12 views
28

In Delphi, posso includere il codice sorgente di una cartella, aggiungendo al progetto percorso di ricerca, o aggiungendolo al percorso della libreria. Il percorso di ricerca si applica solo al progetto corrente, mentre il percorso della libreria si applica a qualsiasi progetto aperto con l'IDE.Delphi Percorso di ricerca vs Library Path vs Navigazione Percorso

Oltre a ciò, esiste una differenza funzionale tra i percorsi di ricerca e libreria?

La mia ragione per chiedere: Ho una cartella X con origine utilizzata dal progetto A. Quando includo quella cartella sotto il percorso di ricerca del Progetto A, dice che non riesce a trovare un file specifico in quella cartella. Quando lo includo sotto il percorso Libreria, il progetto A compila bene.

Fino ad ora, sono sempre stato sotto l'impressione che l'unica differenza era che uno era specifico per il progetto, e l'altro era globale.

Mentre siamo sul tema (e con il rischio di fare una figuraccia di me stesso): Qual è la differenza funzionale tra "percorso di libreria" e "percorso di navigazione"?

+1

"e con il rischio di prendere in giro me stesso" - Gli sciocchi sono quelle scimmie che hanno scritto il manuale. Tutti sono confusi sui percorsi a Delphi. – Ampere

risposta

27

Per quanto ne so, il percorso di ricerca è il punto in cui il debugger deve cercare i file durante l'interruzione/passaggio nei file di origine che non si trovano nel percorso della libreria.

Diciamo che hai un componente di terze parti che usi. Si punta il percorso della libreria alla directory in cui si trovano i file dcu precompilati di quel componente. Il tuo progetto userà questi file dcu durante la compilazione. Questo è buono, perché non verrà ricompilato ogni volta che esegui una compilazione.

Ma includendo i file DCU compilati, si perde la possibilità di eseguire il debug del componente thirparty. Se si include il percorso in cui si trovano i file di origine nel percorso di ricerca, il debugger troverà l'origine e consentirà di intervenire su di esso.

Le impostazioni predefinite per il vcl mostrano questo. Nel percorso della libreria hanno inserito $ (BSD) \ Lib e nel percorso di navigazione hanno inserito $ (BDS) \ SOURCE \ WIN32 ...

Aggiornamento: Esistono due diversi tipi di percorsi di ricerca: percorso di ricerca del compilatore e percorso di ricerca del debugger. Il primo è che il compilatore cerca i file durante la compilazione e il secondo è dove il debugger cerca i file sorgenti durante il debug.

Il compilatore trova solo i file nel percorso Libreria o nel percorso di ricerca dei progetti. Il debugger troverà identificatori nel percorso di ricerca dei compilatori più il percorso di navigazione, il percorso di origine di debug per il progetto e il percorso di ricerca globale di debug.

Non ci dovrebbero essere differenze nello specificare le cose globalmente o il progetto pr.

+0

Questa era la mia comprensione, e questo ha senso. Ma questo significa che, in pratica, tutti e tre sono uguali ... è solo una questione di organizzazione. Ciò non corrisponde alla mia esperienza con questo problema. – JosephStyons

+1

No, non è la stessa cosa. Se si include il percorso in solo percorso di ricerca, si desidera compilare. – Vegar

1

Il debugger trova anche i file nel percorso della libreria.

Problemi correlati