2016-09-21 4 views
0

Je dois migrer un projet IAR vers l'Eclipse IDE et le compilateur GCC. Pour cela, je fais le processus pas à pas, et la première étape est d'utiliser Eclipse + makefile et le compilateur IAR.option de l'éditeur de liens, somme du chemin trop longue?

La compilation est pas un problème, j'ai des fichiers d'objet, le problème est pendant le lien, l'éditeur de liens posent un problème:

IAR ELF Linker V7.10.3.6832/W32 for ARM Copyright 2007-2014 IAR Systems AB. Fatal error[Li001]: could not open file "C:\tunk\src\Sources\mirtic_meta_data\mirtic_meta_data.o"

Si je change l'ordre des fichiers de lien, ce n'est pas le même fichier ce qui soulève l'erreur. Mais à chaque fois, une lettre est manquante dans le chemin, et c'est la même lettre: "r"

ici, le fichier doit être dans le répertoire "trunk" et non "tunk". J'ai vérifié, le chemin est correct lorsqu'il est envoyé à l'éditeur de liens.

Apparemment, c'est Windows qui ne peut pas gérer beaucoup de chemin. Mais je ne sais pas comment résoudre mon problème (j'ai essayé de mettre le projet près de "C:", sans résultat). Je sais qu'il existe une solution, car avec IAR workbench, je peux créer un fichier binaire.

+0

Juste une pensée, mais avez-vous essayé CMake? – rubenvb

+0

@rubenvb Non, je n'ai pas, mais je ne pense pas que cela résout mon problème. Le makefile généré par CMake devrait envoyer tous les fichiers objet à l'éditeur de liens, et le problème sera à nouveau soulevé, non? –

+0

Est-ce que votre 'Makefile' est correct? Est-ce qu'il épelle correctement le tronc? Si vous exécutez 'Makefile' dans un environnement de ligne de commande et regardez la sortie de chaque commande, est-ce correct partout? La construction de la ligne de commande échoue-t-elle au même endroit? –

Répondre

0

J'ai eu un problème très similaire lors de l'utilisation du plugin Eclipse de IAR, mais pour moi, c'était à l'étape de la compilation. J'avais tellement de chemins que nous dépassions la limite de longueur de commande. Ma solution, et peut-être que cela vous aidera, était de vous assurer que tout était construit en utilisant des chemins relatifs au lieu de chemins absolus. Dans mon cas, il s'agissait de changer les répertoires include à l'intérieur du projet Eclipse pour les spécifier en tant que chemins relatifs. Je ne suis pas sûr si vous pouvez accomplir la même chose avec votre makefile, mais j'espère que cela pourrait aider.

+0

J'utilise des chemins relatifs pour le compilateur, mais ces lignes: OBJDIR = $ (SOURCES: .c = .o) $ (OBJDIR) /%. O:% .c \t $ (CC) $ (CFLAGS) - c $ <-o $ @ semblent traduire les chemins relatifs des fichiers .c en chemins absolus pour les fichiers objets. Je ne sais pas comment changer cela –

+0

Je ne sais pas faire bien, mais il y a beaucoup de gens ici qui le font, donc j'espère que quelqu'un peut aider. – rjp