2012-05-14 14 views
8

Quando si cerca di creare un collegamento con gccgo su Precise, ottengo questo errore di collegamento:gccgo su Precise

[email protected]:~/src/gopath/src/meme$ gccgo cmd/meme/main.go -o meme 
/usr/bin/ld: cannot find -lgcc_s 
collect2: error: ld returned 1 exit status 

Non ci sono segnalazioni di questo errore, ma non soluzioni pulite. Come lo aggiusto?

gccgo (Ubuntu/Linaro 4.7.0-0ubuntu4) 4.7.0

Linux matt-1005P 3.2.0-24-generic-pae #38-Ubuntu SMP Tue May 1 16:40:26 UTC 2012 i686 i686 i386 GNU/Linux

risposta

10

Questo è stato recentemente portato sul gruppo golang-dadi: compiling with gccgo from packaged binaries.

È un problema noto in Ubuntu (Bug #966570). Per aggirare il problema, è possibile creare un collegamento con la libgcc statica specificando -static-libgcc in gccgoflags. vale a dire

go build -compiler gccgo -gccgoflags '-static-libgcc' 
1

Da quello che posso dire, è perché gccgo è basata su GCC 4.7, ma preciso utilizza GCC 4.6 per impostazione predefinita. Per qualsiasi motivo, i percorsi della libreria non sono corretti o il pacchetto è incompleto perché manca libgcc_s.

mi trova possibili librerie con find/-name 'libgcc_s*' e superato il percorso della libreria in questo modo:

go install -compiler=gccgo -gccgoflags -L/usr/lib/gcc/i686-linux-gnu/4.6 meme/cmd/meme 

Si noti che questo è il collegamento contro il 4,6 del libgcc_s, ma sembra funzionare comunque.

0
/usr/bin/ld: cannot find -lgcc_s (cannot find lgcc_s.so) 

gccgo -v (we gcc version 4.7.0 (Ubuntu/Linaro 4.7.0-1ubuntu5)) 

locate libgcc_s.so.1 

/lib/i386-linux-gnu/libgcc_s.so.1 

ln -sf /lib/i386-linux-gnu/libgcc_s.so.1 /usr/lib/gcc/i686-linux-gnu/4.7.0/libgcc_s.so 

OK

Problemi correlati