質問: 32bitでコンパイルするには お世話になっております。 centosの64ビットマシンを使っています。 c言語の簡単なサンプルとして、ポインタ変数の長さを表示するプログラム(sizeof(ポンタ変数)をprintf)を作りました。 これをコンパイルして実行すると8と表示されますので、64bitとアプリケーションとしてコンパイルされたのだろうと思います。 次に32bitアプリケーションとしてコンパイルするために-m32オプションを付けてコンパイルしたところ、以下のとおりエラーが出てしまい困っております。 gcc -m32 -o sample sample.c /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.4.7/libgcc_s.so when searching for -lgcc_s /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.4.7/libgcc_s.so when searching for -lgcc_s /usr/bin/ld: cannot find -lgcc_s collect2: ld returned 1 exit status 解決方法について教えていただければ幸いです。 コンパイラは、gcc-4.4.7-3.el6.x86_64をインストールしています。 よろしくお願いします。
回答: >どちらもno package libgcc.i386 available でエラーになりました。 [root@localhost ~]# yum search libgcc loaded plugins: fastestmirror, refresh-packagekit, security loading mirror speeds from cached hostfile * base: ftp.tsukuba.wide.ad.jp * extras: ftp.tsukuba.wide.ad.jp * updates: ftp.tsukuba.wide.ad.jp ================ n/s matched: libgcc ================ libgcc.i686 : gcc version 4.4 shared support library libgcc.x86_64 : gcc version 4.4 shared support library name and summary matches only, use "search all" for everything. [root@localhost ~]# そりゃ、i396はありませんからね。 >libgcc-4.4.7-3.el6.x86_64がすでに入っているので、 libgcc-4.4.7-4.el6.i686を入れられない libgcc-4.4.7-3.el6.x86_64をアップデートしてlibgcc-4.4.7-4.el6.x86_64ににしてから libgcc-4.4.7-4.el6.i686をインストールすればよいのでは?