2010-06-07 3 views
29

J'ai besoin de compiler certains fichiers avec une utilisation des versions modifiées des en-têtes de bibliothèque standard. Avec compilateur Visual C++, je vais le faire par l'utilisation de /X (Ignorer les chemins d'accès standard Inclure) et /I (Additional Include Directories) paramètres. Comment cela devrait-il être fait avec gcc?gcc: Comment ignorer les chemins d'inclusion standard?

Répondre

38
gcc -nostdinc -I/custom/include/path/goes/here 

-nostdinc ne tient pas compte C standard des répertoires
-nostdinc++ ignore la norme C++ include

7

Si vous ajoutez juste -I à votre ligne de commande, vous verrez (surtout si vous ajoutez également -v) que gcc regardera dans ces dossiers avant de regarder dans d'autres dossiers. Donc, vous n'avez pas besoin d'ajouter --nostdinc) pour utiliser une bibliothèque STL alternative.

Dans cette STLPort façon est utilisé:

g++ -I path-to-stlport-include main.cpp -L path-to-stlport-lib -lstlport

+17

Mais dans certains cas, il est préférable de ne pas avoir standard comprennent des chemins, donc en-têtes standard ne seront pas inclus au lieu d'un j'utilise pour le remplacement en cas quand ce remplacement est manquant. De mon point de vue, il est préférable d'avoir une erreur de compilation dans ce cas plutôt qu'un comportement confus de l'unité compilée avec succès. – okutane

Questions connexes