4

私は64ビットマシンでubuntu12.04を使用しています、私はこの単純なCコードを持っています:

 int b = 20;
 int c = 10;

 int main(int argc, char **argv) {
      c = 50;
 }

次のようにコンパイルして、IA32マシンと互換性を持たせようとしました。

 unix> gcc -m32 code.c

そして、これらのエラーが発生しました:

 /usr/bin/ld: cannot find crt1.o: No such file or directory
 /usr/bin/ld: cannot find crti.o: No such file or directory
 /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc.a when searching for -lgcc
 /usr/bin/ld: cannot find -lgcc
 /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc_s.so when searching for -lgcc_s
 /usr/bin/ld: cannot find -lgcc_s
 /usr/bin/ld: cannot find -lc
 /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc.a when searching for -lgcc
 /usr/bin/ld: cannot find -lgcc
 /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc_s.so when searching for -lgcc_s
 /usr/bin/ld: cannot find -lgcc_s
 /usr/bin/ld: cannot find crtn.o: No such file or directory
 collect2: ld returned 1 exit status

私が理解しているように、これは32ビットの標準Cライブラリがないために発生しているため、リンカはコードを標準Cライブラリにリンクできません。

64ビットマシンで必要な32標準Cを取得するにはどうすればよいですか?

4

1 に答える 1

5

これを試して:

  apt-get install ia32-libs 

また、-m32でコンパイル/リンクする必要があります。

gcc -Wall -pedantic -m32 ...
于 2012-06-17T05:35:29.163 に答える