用gcc组装32位x86代码?

时间:2013-09-18 01:02:30

标签: linux gcc x86 sdl

我正试图在我的64位Linux系统上构建sdl quake。它在我的32位Linux系统上构建并运行良好。我得到的错误是:

d_copy.S:28: Error: invalid instruction suffix for `push'

还有一堆类似的错误。我假设我应该能够使用-m32标志进行构建,并将它构建为32位二进制文​​件。这对我来说没问题。

我将“-m32”附加到Makefile中的CFLAGS中,并尝试重新构建,但现在我得到了:

gcc -DPACKAGE=\"sdlquake\" -DVERSION=\"1.0.9\"  -I. -I.      
-g -O2 -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -DSDL -DELF -m32 -c cd_sdl.c
In file included from /usr/include/SDL/SDL_main.h:26:0,
             from /usr/include/SDL/SDL.h:30,
             from cd_sdl.c:8:
/usr/include/SDL/SDL_stdinc.h:34:23: fatal error: sys/types.h: No such file or directory
compilation terminated.
make: *** [cd_sdl.o] Error 1

我想我可能只是遗漏了一些显而易见的东西,因为我没有那么多地使用-m32标志。操作系统是Ubuntu。

1 个答案:

答案 0 :(得分:2)

你需要32位版本的libc-dev才能做到这一点。

使用Ubuntu的最快方法:

sudo apt-get install libc6-dev-i386