2012-09-03 7 views
8

私はUbuntu 12.04 32ビットでソースからg ++ 4.7.1をコンパイルしようとしています。 現時点で私は正確にそれを行っています:https://askubuntu.com/questions/168947/how-to-upgrade-g-to-4-7-1 g ++ 4.7.1のコンパイルの直前を除いて、 "LIBRARY_PATHを設定解除する"ように要求しています。 ので、コンパイルが開始され、しばらくすると、私は次のエラーメッセージがありますg ++ 4.7.1コンパイルエラー: 'strsignal'の相反するタイプ

In file included from ../.././gcc/c-lang.c:24:0: 
../.././gcc/system.h:499:20: erreur: conflicting types for ‘strsignal’ 
/usr/include/string.h:566:14: note: previous declaration of ‘strsignal’ was here 
In file included from ./tm.h:19:0, 
       from ../.././gcc/c-lang.c:26: 
./options.h:3738:2: erreur: #error too many masks for ix86_isa_flags 
In file included from ../.././gcc/input.h:25:0, 
       from ../.././gcc/tree.h:27, 
       from ../.././gcc/c-lang.c:27: 
../.././gcc/../libcpp/include/line-map.h:208:38: erreur: ‘CHAR_BIT’ undeclared here (not in a function) 
../.././gcc/../libcpp/include/line-map.h:208:3: erreur: bit-field ‘reason’ width not an integer constant 
../.././gcc/../libcpp/include/line-map.h:208:3: attention : ‘reason’ is narrower than values of its type [enabled by default] 
In file included from ../.././gcc/tree.h:32:0, 
       from ../.././gcc/c-lang.c:27: 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/real.h:105:9: erreur: #error "REAL_WIDTH > 6 not supported" 
In file included from ../.././gcc/c-family/c-common.h:26:0, 
       from ../.././gcc/c-tree.h:25, 
       from ../.././gcc/c-lang.c:28: 
../.././gcc/../libcpp/include/cpplib.h:225:3: erreur: bit-field ‘type’ width not an integer constant 
../.././gcc/../libcpp/include/cpplib.h:225:3: attention : ‘type’ is narrower than values of its type [enabled by default] 
../.././gcc/../libcpp/include/cpplib.h:267:3: erreur: #error "Cannot find a least-32-bit signed integer type" 
../.././gcc/../libcpp/include/cpplib.h:269:35: erreur: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cppchar_t’ 
../.././gcc/../libcpp/include/cpplib.h:270:1: erreur: unknown type name ‘CPPCHAR_SIGNED_T’ 
../.././gcc/../libcpp/include/cpplib.h:768:1: erreur: unknown type name ‘cppchar_t’ 
../.././gcc/../libcpp/include/cpplib.h:779:1: erreur: unknown type name ‘cppchar_t’ 
../.././gcc/../libcpp/include/cpplib.h:779:58: erreur: unknown type name ‘cppchar_t’ 
../.././gcc/../libcpp/include/cpplib.h:954:1: erreur: unknown type name ‘cppchar_t’ 

(申し訳ありませんが、いくつかのエラーメッセージはフランス語である:erreur -> errordivision par zéro dans #if -> division by zero in #if)。

問題とその解決方法は何ですか?

(他のほとんどの質問:./configure./configure -vの違いは何ですか?)

EDIT:system.h

/* If the system doesn't provide strsignal, we get it defined in 
    libiberty but no declaration is supplied. */ 
#if !defined (HAVE_STRSIGNAL) \ 
    || (defined (HAVE_DECL_STRSIGNAL) && !HAVE_DECL_STRSIGNAL) 
# ifndef strsignal 
extern const char *strsignal (int); 
# endif 
#endif 
+0

私は最近、ソースからgcc 4.7.1をビルドしました - おそらく私のメモは助けになるでしょう:http://steve-lorimer.blogspot.com.au/2012/08/building-gcc.html –

答えて

5

でstrsignalの行は、私は同じ問題を抱えていました。私の場合は、bash変数CPATH、LIBRARY_PATH、およびC_INCLUDE_PATHを設定解除して解決しました。その後、ビルドはうまくいった。

8

私はこのマシン上のrootアクセス権を持っていない、と私はそれらの多くの変数に追加しておりますので、私は

unset LIBRARY_PATH CPATH C_INCLUDE_PATH PKG_CONFIG_PATH CPLUS_INCLUDE_PATH INCLUDE 

を使用。

+1

私はgcc 5.3.0をコンパイルしました(受け入れられた答えは十分に設定されていませんでした) –

0

私は"unset LIBRARY_PATH CPATH C_INCLUDE_PATH PKG_CONFIG_PATH CPLUS_INCLUDE_PATH INCLUDE"を使用しました。それが私の問題を解決しました。

0

私はこれらのenv変数をgccの依存関係の一部に向けて使用しているので、他の解決策は私にとってはうまくいきませんでした。またunsetティンvariitは、非常に正確な修正のような音はありません:)

は問題が判明、私はそうのように私のenvでいくつかの末尾:は、宣言をvarsはなかったです。

$ export LIBRARY_PATH=/foo/bar:$LIBRARY_PATH 
$ echo $LIBRARY_PATH 
/foo/bar: 

結果はLIBRARY_PATHがということです常にカレントディレクトリも含めてください。 env変数を正しく設定し、末尾に:がなくても問題は解決しました。

関連する問題