Je viens d'essayer les dernières versions de llvm et clunk trunk. Ils ont compilé sans un seul avertissement hors de la boîte, mais j'ai du mal à relier un exemple de bonjour monde. Mon code estproblème de lien clang
#include <stdio.h>
int main(){
printf("hello\n");
}
Si je compile en utilisant
clang test.c
je reçois l'erreur suivante
/usr/bin/ld: crt1.o: No such file: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)
L'utilisation -v montre que le gnou ld est invoquée comme
"/usr/bin/ld" --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o a.out crt1.o crti.o crtbegin.o -L -L/../../.. /tmp/cc-0XJTsG.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed crtend.o crtn.o
Mais j'ai le fichier objet crt1.o!
$ locate crt1.o
/usr/lib/Mcrt1.o
/usr/lib/Scrt1.o
/usr/lib/crt1.o
/usr/lib/gcrt1.o
Ce qui fonctionne aussi est
clang -c test.c
gcc test.o
et bien sûr
gcc test.c
Ce que je encore essayé:
$ clang -Xlinker "-L /usr/lib" test.c
/usr/bin/ld: crt1.o: No such file: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)
$ clang -Xlinker "-L /usr/lib" test.c -v
"/usr/bin/ld" --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o a.out crt1.o crti.o crtbegin.o -L -L/../../.. -L /usr/lib /tmp/cc-YsI9ES.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed crtend.o
J'ai aussi essayé de copier le fichier dans crt1.o le répertoire actuel. Cela a semblé fonctionner. Eh bien, il n'a pas compilé, car après cela crti.o manquait.
Ma distribution est Ubuntu.
Eh bien, je ne sais pas vraiment quoi essayer ensuite. Je ne vois pas comment je pourrais corriger le clang et je n'ai pas d'idée sur la façon d'injecter le chemin nécessaire dans l'invocation ld. Des idées?
ne me reste qu'une brève description de -Xlinker dans la page de mon clang mais n'est pas censé être -Xlinker passé deux fois pour les options avec un argument? Voici ce que disent les pages de manuel de gcc pour Xlinker. – anddam