2010-03-27 16 views
5

Sto provando ad utilizzare la libreria SDL_Image e ho aggiunto il file .so all'elenco delle librerie di collegamenti per il mio progetto (sto usando Code :: Blocks, dal modo).Errore linker C++ Immagine SDL - impossibile leggere i simboli

Dopo aver fatto questo, quando vado a compilare, ottengo questo errore:

Linking console executable: bin/Debug/ttfx 
/usr/lib32/libSDL_image-1.2.so: could not read symbols: File in wrong format 

Cosa significa e come posso farlo funzionare?

Modifica: sto utilizzando gcc.

Grazie!

risposta

5

Durante il passaggio di collegamento esistono incompatibilità poiché alcuni dei file oggetto sono stati compilati per 32 bit e alcuni per 64 bit. Guardando il suo percorso libSDL_image.so probabilmente è stato compilato per 32-bit.

Se si utilizza il compilatore GNU, aggiungere -m32 allo CXXFLAGS per compilare gli oggetti anche per 32 bit.

+1

Come esattamente lo aggiungerei al mio CXXFLAGS? Sarebbe vicino a dove ho aggiunto quel file alla mia lista di librerie di collegamenti? –

+1

@Matt: Non uso io stesso 'codeblocks', ma questa sezione dei documenti sembra descrivere in dettaglio cosa è necessario fare http://wiki.codeblocks.org/index.php?title=Developing_32_bit_apps_under_64_bit_Linux_(Ubuntu)#Setting_the_build_options_in_Code :: Blocks –

+0

@MatthewH hai scoperto come aggiungerlo al CXXFLAGS? Puoi dirmi come è fatto? – Black

1

This link e this one suggeriscono che il problema è che si sta eseguendo una compilazione a 64 bit con una libreria a 32 bit. YMMV

Problemi correlati