0

本に付属するコードをインストールしようとしています: https://sites.google.com/site/cinterfacesimplementations/

著者の指示に従ってください: http://cii.googlecode.com/svn/trunk/install.html

私のコンピューターには、32ビットi686アーキテクチャのubuntu 11.04があります。私が試す32ビットLinuxの著者の指示に従ってください:

make CC='cc -DMAXALIGN=4' AS='cc -c -x assembler-with-cpp -traditional'

cc は gcc バージョン 4.5.2 で、次の警告とエラーが表示されます。

makefile:138: warning: overriding commands for target `maxalign'
makefile:135: warning: ignoring old    cc -DMAXALIGN=4 -g -Iinclude -c -o ap.o src/ap.c

In file included from src/thread.c:100:0:
/usr/include/i386-linux-gnu/asm/sigcontext.h:56:8: error: redefinition of ‘struct _fpreg’
/usr/include/bits/sigcontext.h:28:8: note: originally defined here
/usr/include/i386-linux-gnu/asm/sigcontext.h:61:8: error: redefinition of ‘struct _fpxreg’
/usr/include/bits/sigcontext.h:34:8: note: originally defined here
/usr/include/i386-linux-gnu/asm/sigcontext.h:67:8: error: redefinition of ‘struct _xmmreg’
/usr/include/bits/sigcontext.h:41:8: note: originally defined here
/usr/include/i386-linux-gnu/asm/sigcontext.h:71:8: error: redefinition of ‘struct _fpstate’
/usr/include/bits/sigcontext.h:50:8: note: originally defined here
/usr/include/i386-linux-gnu/asm/sigcontext.h:104:8: error: redefinition of ‘struct sigcontext’
/usr/include/bits/sigcontext.h:81:8: note: originally defined here
src/thread.c: In function ‘interrupt’:
src/thread.c:108:2: warning: ‘sigsetmask’ is deprecated (declared at /usr/include/signal.h:199)
make: *** [thread.o] Error 1

ここで何をすべきかわからない。/usr/include/i386-linux-gnu も不可解です。私がするなら以来

uname -m

i363 ではなく i686 を出力します。アイデアはありますか?

乾杯、ジム

4

1 に答える 1

3

thread.c の 100 行目 — を削除#include <asm/sigcontext.h>(またはコメントアウト) します。これにより、「重複宣言」が削除されます。非推奨のインターフェイスの使用 (10 年前に書かれた本と 5 年前に更新されたコードの問題) は修正されません。また、これを 64 ビット プロセッサで実行しようとすると、私が修正しようとしていない他の問題が発生します。 .

于 2013-01-26T02:44:00.053 に答える