2012-02-07 18 views
5

LLVM fornisce 2 strumenti llvm-link e llvm-ld. Vorrei sapere:Come si usa llvm linker?

  • come unire tutti .o file in uno?

  • come impostare un sonoro come con gcc -Wl, -soname, libsomething.so.1?

Vorrei farlo in C++ ma se mi mostra come farlo dalla riga di comando ho trovato come fare in C++.

grazie

+0

Che cosa stai cercando di fare esattamente? Collega file oggetto o file codice bit LLVM? Crea un .so? –

risposta

9
  • llvm-link è uno strumento per il collegamento (~ fusione) file LLVM IR in un altro file LLVM IR.
  • llvm-ld tenta di essere compatibile con ld. Nota che attualmente LLVM non ha capacità di collegamento reali, quindi llvm-ld chiama gcc per eseguire le fasi finali effettive.

Si noti che se si desidera solo avere funzionalità di GCC, utilizzare il driver clang:

clang -c file.c -fpic 
clang -shared file.o -o file.so 

È anche possibile passare i -Wl bandiere per clang come faresti per gcc:

clang -shared file.o -Wl,-soname,libfile.so.8 -o file.so 
+2

Per aggiungere a questo, si prega di non utilizzare llvm-ld direttamente. Diamine, per favore non usare mai linker direttamente a meno che tu non sappia esattamente cosa stai facendo e non hai un driver di compilazione per gestirlo per te. – echristo

+3

Solo un suggerimento, su Mac, usa '-dynamiclib' per sostituire '-shared ....- Wl, -soname, libxxxxx' parte – clsung

+0

@clsung grazie! – Cfr