J'ai un projet qui construit avec le système CMAKE, et j'aime l'importer dans Eclipse. Cependant, lorsque je générerai des fichiers de projet Eclipse avec "Cumake -g" Eclipse CDT4 - UNIX Makefiles "' Il n'y a pas de valeur par défaut include des chemins dans le projet Eclipse (telle que / USR / Inclure 'ou le chemin GCC pour les en-têtes standard). p>
Comment résoudre ce problème de bonne manière? P>
Système: linux GCC 4.3.3 cmake 2.6.4 Eclipse 3.5.1 P>
4 Réponses :
Vous devez aller aux propriétés du projet (bouton de droite via le projet), "C / C ++ Inclure les chemins et les symboles" et les ajoutez ici comme "Pistes externes incluant des chemins". P>
Le changement devrait être effectué dans CMAKELIST.TXT, car les fichiers de projet Eclipse sont généraux
Je sais, mais seulement une fois. Lorsque les fichiers CMAKELIST modifient ne modifient pas ces paramètres dans le projet Eclipse. L'ajout d'en-têtes standard au projet Eclipse est uniquement pour permettre à l'indexeur de les trouver, mais non liée au processus de construction.
Fnieto a raison, ou du moins ce qu'il dit est la seule solution que je connaissais. Autant que je sache, il n'y a pas de meilleure solution.
Dans votre CMAKELIST.TXT Essayez d'ajouter les deux lignes suivantes:
find_path(STDIO_INCLUDE_PATH stdio.h) include_directories("${STDIO_INCLUDE_PATH}/dummy/../")
essayer pour mon cas était p> J'espère que cela aide P> P>
Vous pouvez analyser la liste des répertoires directement à partir du compilateur, vous savez donc que vous obtenez exactement le même ensemble que CMAKE utilise (en supposant que votre configuration de CMAKE utilise le même compilateur). Ensuite, divisez-les dans une liste avec distinct_arguments et ajoutez-les avec la commande include_directories code>.
execute_process(
COMMAND echo
COMMAND bash -c "g++ -E -Wp,-v - 2>&1"
COMMAND awk "/^#include .* starts here:$/,/^End of search list/ { if ($0 ~ /^ /) { print } }"
OUTPUT_VARIABLE SYS_INCLUDES_OUT)
separate_arguments(SYS_INCLUDES UNIX_COMMAND ${SYS_INCLUDES_OUT}) # create a list
include_directories(${SYS_INCLUDES}) # add list to includes