La configuration de Netbeans/Eclipse pour le Développement du Noyau Linux
Je suis en train de faire quelques noyau Linux de développement, et je suis en train d'utiliser Netbeans. Malgré déclaré soutien de Make-C projets, je ne peux pas créer un entièrement fonctionnel du projet Netbeans. C'est en dépit de la compilation d'avoir Netbeans analyser un noyau binaire qui a été compilé avec le plein d'informations de débogage. Des problèmes sont les suivants:
- fichiers sont exclues à tort: Certains fichiers sont mal grisé dans le projet, ce qui signifie que Netbeans ne crois pas qu'ils devraient être inclus dans le projet, quand en fait ils sont compilés dans le noyau. Le principal problème est que Netbeans va manquer aucune des définitions qui existent dans ces fichiers, tels que les structures de données et des fonctions, mais aussi miss définitions de macro.
- ne peut pas trouver des définitions: Assez explicite, souvent, Netbeans ne peut pas trouver la définition de quelque chose. C'est en partie une conséquence du problème ci-dessus.
- ne pouvez pas trouver les fichiers d'en-tête: auto-explicatif
Je me demandais si quelqu'un a réussi à configurer Netbeans pour le noyau Linux de développement, et, dans l'affirmative, quels sont les paramètres qu'ils ont utilisé. En fin de compte, je suis à la recherche de Netbeans pour être en mesure soit d'analyser le fichier Makefile (de préférence) ou d'extraire les informations de débogage de l'binaire (moins souhaitable, car cela peut ralentir significativement la compilation), et de déterminer automatiquement les fichiers sont compilés et les macros qui sont en fait définis. Puis, sur cette base, je voudrais être en mesure de trouver les définitions de structures de données, de variable, de fonction, etc. et avoir une complète auto-complétion.
Permettez-moi de commencer cette question avec quelques points:
- Je ne suis pas intéressé par les solutions impliquant Vim/Emacs. Je sais que certaines personnes comme eux, mais je ne suis pas l'un d'eux.
- Comme le titre le suggère, je serais également heureux de savoir comment configurer Eclipse pour faire ce dont j'ai besoin
- Bien que je préfère une couverture parfaite, quelque chose qui n'en manque un dans un million de définitions est évidemment fine
DONC utile "Questions Liées à la" fonctionnalité m'a informé que la question suivante est liée: https://stackoverflow.com/questions/149321/what-ide-would-be-good-for-linux-kernel-driver-development. Lors de la lecture, la question est de plus en plus d'une comparaison entre l'IDE, alors que je suis à la recherche pour comment mettre en place un particulier IDE. De même, l'utilisateur Wade Mealing semble avoir une certaine expérience dans le travail avec Eclipse sur ce genre de développement, donc je serais certainement apprécier son (et bien sûr à tous de vos réponses.
Acclamations
Vous devez vous connecter pour publier un commentaire.
Eclipse semble être assez populaire pour le noyau Linux de développement:
Je l'ai déjà écrit une réponse. Maintenant je viens avec tous les détails de la solution et aimeriez le partager. Malheureusement stackoverflow ne me permet pas de modifier la réponse précédente. Donc je l'écris dans cette nouvelle réponse.
Il implique quelques étapes.
[1] La première étape consiste à modifier les scripts linux laisser dep de fichiers. Par défaut, après leur utilisation dans la construction, ceux de la dep fichiers sont supprimés. Ceux dep fichiers contient exacte de la dépendance d'informations sur d'autres fichiers un fichier C dépend. Nous avons besoin d'eux pour créer une liste de tous les fichiers impliqués dans un build. Ainsi, de modifier des fichiers sous linux-x.y.z/scripts pour faire d'eux de ne pas retirer la dep fichiers comme ceci:
Les autres étapes sont détaillées dans mon github du projet du code fichier https://github.com/minghuascode/Nbk/blob/master/note-nbkparse. Environ vous faire:
[2] Configurer avec votre méthode de configuration, mais assurez-vous d'utiliser "O=" option pour construire les fichiers obj dans un répertoire distinct.
[3] Puis utilisez les mêmes "O= option" et "V=1" option de construire linux, et faire enregistrer la sortie dans un fichier.
[4] Exécuter mon nbkparse script à partir de ci-dessus github du projet. Il n':
[4.1] Lire dans le fichier journal, et le dep fichiers. Générer une mise en miroir de la commande.
[4.2] Exécutez la mise en miroir de commande pour dur-lien de la source des fichiers dans une arborescence séparée, et de générer un fichier journal pour NetBeans pour l'utiliser.
Maintenant créer un NetBeans C projet à l'aide du miroir de l'arbre source et le fichier journal généré. NetBeans devrait être en mesure de résoudre tous les symboles du noyau. Et vous verrez tous les fichiers impliqués dans la construction.
L'Éclipse wiki a une page sur ce sujet: Comment faire pour utiliser le CDT de naviguer source du noyau Linux
J'ai fait quelques intégré de développement de linux. Y compris le module de noyau de développement et ont importé l'ensemble des sources du noyau linux code dans Eclipse, comme un projet distinct. J'ai été la construction du noyau lui-même en dehors d'Eclipse(pour l'instant), mais je ne suis pas une raison pour laquelle je ne devrais pas être capable de mettre en place l'environnement de génération au sein d'Eclipse pour compiler le noyau. Pour mes projets, aussi longtemps que je peux configurer les propriétés de CHEMIN au point appropriée à la source de linux inclure des répertoires, il semble être assez bonne sur le nom de l'achèvement struct champs, etc.
Je ne peux pas vraiment commenter, si elle est de ramasser le bon définit et pas le grisonnement les sections correspondent, comme je n'ai pas vraiment payé beaucoup d'attention pour les fichiers dans le noyau lui-même.(jusqu'à présent)
Je me demandais aussi sur l'utilisation de Netbeans comme un linux 'C' IDE, que je ne préfère Netbean pour Java GUI de développement.
Je pense que ce serait le travail (fait à chaque étape pour divers projets):
[1] Modifier le noyau des scripts de génération pour laisser .d fichiers. Par défaut, ils sont supprimés.
[2] Journal le processus de génération d'un fichier.
[3] Écrire un script pour analyser le journal de génération.
[3.1] Dans le journal, vous le savez tous .c fichiers.
[3.2] De la .c fichier, vous savez qui est le correspondant .d fichier.
[3.3] Regarder dans .d fichiers pour trouver tous les inclus .h fichiers.
[3.4] la Forme complète .c et .h liste des fichiers.
[4] Maintenant, créez un nouveau répertoire, et l'utilisation "ln -s" ou "ln" pour sélectionner des fichiers d'intérêt.
Maintenant, créez un projet Netbeans de code source existant dans [4].
Configurer le code de l'assistance à l'utilisation de make-fichier journal. Vous devriez voir
exactement l'efficacité de code source que lorsque vous construisez [2].
Quelques explications sur les étapes ci-dessus:
À [2], faire un véritable construire de sorte que le fichier journal contient les fichiers et les drapeaux d'intérêt.
Plus tard, netbeans sera en mesure d'utiliser exactement les drapeaux à analyser.
À [4], choisissez uniquement les fichiers que vous souhaitez voir. Intégrant l'ensemble de l'arborescence du noyau dans netbeans sera infaisable.
Il existe une astuce pour l'analyse .d fichiers: de Nombreux dépendait éléments ne sont pas de vrais chemins à une .h fichier, ils sont une modification de l'entrée pour une partie de la linux sections de configuration dans l'auto fichier de configuration. Vous devrez peut-être inverser la modification de comprendre qui est le véritable fichier d'en-tête.
En fait il y a un sujet sur netbeans site. C'est la discussion url: http://forums.netbeans.org/ntopic3075.html . Et il y a une page wiki à partir de la discussion: wiki.netbeans.org/CNDLinuxKernel . Fondamentalement, il vous demande de le préfixe faire avec CFLAGS="-g3 -gdwarf-2" .
J'ai trouvé ce lien très utile dans la mise en place d'une bonne indexation dans Eclipse. Il nécessite l'exécution d'un script pour modifier environnement Eclipse pour correspondre à votre options du noyau, dans mon cas
Un guide illustré de l'indexation du noyau linux, eclipse