2010-06-08 2 views
1

J'utilise la chaîne d'outils CodeSorcery bras eabi-gcc et j'ai un problème avec séparer ld de gccObtenez le gcc de configuration lien par défaut utilise lorsque vous appelez l'éditeur de liens

Je peux compiler mon programme simple et relier, si je laisse gcc appeler le ld.

Cela fonctionne pas problème

g++ test.cpp; # Works 

Cela ne fonctionne pas à cause de symboles manquants

g++ -c test.cpp 

ld -o test crti.o crtbegin.o test.o crtend.o crtn.o -lgcc -lc -lstdc++; # Fails 

Avis J'ajoute les bibliothèques gcc à la commande ld

Qu'est-ce que je manque?

De même, s'il existe une meilleure façon de configurer ld pour utiliser la liaison par défaut gcc?

+0

Vous pouvez essayer d'utiliser les fichiers spec: http://stackoverflow.com/a/7505529/895245 –

Répondre

3

La façon la plus simple est d'avoir gcc/g ++ conduire un lien séparé:

g++ -c test.cpp  # compile 
g++ -o test test.o # separate link 

Si vous devez passer des options de l'éditeur de liens, vous pouvez utiliser -Wl:

g++ -o test test.o -Wl,-somelinkeroption,arg 
3

@R Samuel Klatchko a le meilleur conseil, mais si vous voulez vraiment voir ce que gcc/g ++ relie, utilisez le -vverbose option.

Il affiche les chemins de répertoire complets utilisés pour rechercher les fichiers d'en-tête et les bibliothèques, les symboles de préprocesseur prédéfinis et les fichiers objet et les bibliothèques utilisés pour la liaison.

Questions connexes