Pour un système embarqué, j'ai besoin de placer quelques structures de données à des adresses fixes, afin qu'une unité centrale de contrôle séparée puisse y accéder à un emplacement connu. J'utilise des scripts de lieur pour la cible incorporée pour accomplir ceci, plus #defines de ces mêmes adresses pour le CPU de contrôle.#defines dans les scripts de liens
Cela me dérange que ces constantes d'adresse sont donc définies à deux endroits, le script de l'éditeur de liens et un fichier d'en-tête. Je voudrais en avoir juste un. La meilleure solution que j'ai trouvée jusqu'ici est d'avoir le Makefile exécuté cpp sur le script de l'éditeur de liens, lui permettant #include le même en-tête.
Existe-t-il un meilleur moyen d'y parvenir? Y a-t-il une option peu connue à ld ou une convention de nommage pour le script de l'éditeur de liens qui l'exécutera automatiquement via cpp?
Serait utile de savoir quelle chaîne d'outils vous utilisez car il s'agit d'un comportement non-standard – Benoit
gcc 3.x, s'exécutant sur Linux x86 mais compilé de manière croisée pour construire pour MIPS. – DGentry