2010-03-27 14 views
5

Intento utilizar la biblioteca SDL_Image y agregué .so a la lista de bibliotecas de enlaces para mi proyecto (estoy usando Code :: Blocks, por camino).Error de vinculador de C++ Imagen SDL: no se pudieron leer los símbolos

Después de hacer esto, cuando voy a compilar, obtengo este error:

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

¿Qué significa esto y cómo puedo conseguir que funcione?

Editar: Estoy usando gcc.

Gracias!

Respuesta

5

Durante el paso de vinculación existen incompatibilidades ya que algunos de sus archivos de objeto se compilaron para 32 bits y algunos para 64 bits. En cuanto a su ruta libSDL_image.so probablemente se compiló para 32 bits.

Si usa el compilador GNU, agregue -m32 a su CXXFLAGS para compilar también sus objetos de 32 bits.

+1

¿Cómo exactamente lo agregaría a mis CXXFLAGS? ¿Estaría cerca de donde agregué ese archivo a mi lista de bibliotecas de enlaces? –

+1

@Matt: yo no uso 'codeblocks', pero esta sección en los documentos parece detallar lo que hay que hacer 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 ¿Has descubierto cómo agregarlo a CXXFLAGS? ¿Pueden por favor decirme cómo se hace? – Black

1

This link y this one sugieren que el problema es que está haciendo una compilación de 64 bits con una biblioteca de 32 bits. YMMV

Cuestiones relacionadas