Devo specificare il mio percorso di inclusione nel codice sorgente o come opzione di progetto?

3

Fondamentalmente, sto chiedendo, se il mio codice dovrebbe dire

#include “../libs/src/my_lib.h”

o

#include “my_lib.h”

con un'opzione del compilatore di

-I ../libs/src/   

Sento (ragionevolmente strong) che il primo è preferibile, perché:

  • è indipendente dal sistema di build
  • specifica esattamente quale "my_lib" è inteso, nel caso ce ne siano diversi.

Il mio progetto attuale usa il secondo stile, con -I nel file di progetto, dicendo che:

  • non cambieremo mai il sistema di compilazione, il compilatore o la piattaforma
  • ogni file ha un nome univoco

In realtà sembra ragionevole, quindi mi chiedo se sono solo influenzato dall'opinione, o se c'è qualche motivo tecnico ( non un'opinione) a preferire un approccio sull'altro.

    
posta Mawg 27.11.2018 - 11:42
fonte

1 risposta

9

Nel mio attuale luogo di lavoro, vari progetti utilizzano versioni boost che vanno da 1,60 a 1,66, e in momenti opportuni spostiamo quelli in avanti. È molto più semplice reimpostare il progetto in una cartella diversa e lasciare tutti solo #include s.

Questi progetti sono multipiattaforma, stiamo utilizzando più compilatori. Ogni compilatore ha un equivalente di -I ../libs/src/ , e usiamo qmake per coordinarli tutti.

Come note di amon in un commento,

I don't think it's appropriate to view your build system as separate from your project. Your Makefiles (or equivalents) are part of the code.

    
risposta data 27.11.2018 - 13:06
fonte

Leggi altre domande sui tag