お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2011-10-14 18:30:24

a-wada
メンバ
登録日: 2011-10-14

11.10 へのアップデートで C++ がエラーに

ubuntu 11.04 から 11.10 へのアップデートで、これまで正常に動いていた
C++ コンパイラが ld の段階で次のようなエラーを吐き出して止まります。
対処法を教えてください。

a-wada:~/pai$
a-wada:~/pai$ gcc -O2 paigas3h.cpp -lgmpxx -o gas3
/tmp/ccwJ7Q9p.o: In function `prnt_mpf(long, int, __mpf_struct*)':
paigas3h.cpp:(.text+0x5e): undefined reference to `std::cout'
paigas3h.cpp:(.text+0x68): undefined reference to `std::cout'
paigas3h.cpp:(.text+0x77): undefined reference to `std::cout'
paigas3h.cpp:(.text+0x97): undefined reference to `__gmpf_get_str'
paigas3h.cpp:(.text+0xb4): undefined reference to `std::cout'

  ...............................................

paigas3h.cpp:(.text+0x9cf): undefined reference to `__gmpf_clear'
paigas3h.cpp:(.text+0x9d9): undefined reference to `__gmpf_clear'
paigas3h.cpp:(.text+0x9e3): undefined reference to `__gmpf_clear'
/tmp/ccwJ7Q9p.o:paigas3h.cpp:(.text+0x9ed): more undefined references to `__gmpf_clear' follow
/tmp/ccwJ7Q9p.o: In function `_GLOBAL__sub_I__Z19Gauss_AGM_Schonhageli':
paigas3h.cpp:(.text.startup+0x6a): undefined reference to `std::ios_base::Init::Init()'
paigas3h.cpp:(.text.startup+0x79): undefined reference to `std::ios_base::Init::~Init()'
/tmp/ccwJ7Q9p.o:(.eh_frame+0x7b): undefined reference to `__gxx_personality_v0'
collect2: ld はステータス 1 で終了しました
a-wada:~/pai$

 /usr/include/c++/4.6/ はインストールされています。
                                                             
よろしくお願いします。

オフライン

 

#2 2011-10-14 21:02:23

n-takahashi
メンバ
登録日: 2009-09-15

Re: 11.10 へのアップデートで C++ がエラーに

a-wadaさん


 C++を使うならg++を使うのが正しいと思います。私も昨日11.10にアップグレードしましたが、C++コンパイラに異常は見られません。g++をインストールしてみてはいかがでしょう。

オフライン

 

#3 2011-10-14 21:27:17

vbk
メンバ
From: Lake Hamana in Hamamatsu
登録日: 2009-12-22

Re: 11.10 へのアップデートで C++ がエラーに

-lgmpxxの前に「-Wl,」をつけて

コード:

$ gcc -O2 paigas3h.cpp -Wl,-lgmpxx -o gas3

とすると解決しませんか?

https://wiki.ubuntu.com/OneiricOcelot/ReleaseNotes/ja#GCC_4.6_Toolchain
辺りが関係していそうです。

オフライン

 

#4 2011-10-14 21:33:09

vbk
メンバ
From: Lake Hamana in Hamamatsu
登録日: 2009-12-22

Re: 11.10 へのアップデートで C++ がエラーに

あ、多分n-takahashiさんが仰っているとおりですね。

オフライン

 

#5 2011-10-14 21:45:07

a-wada
メンバ
登録日: 2011-10-14

Re: 11.10 へのアップデートで C++ がエラーに

n-takahashi さん、ご回答有り難うございます。 早速

a-wada:~$ sudo apt-get install g++
[sudo] password for a-wada:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています               
状態情報を読み取っています... 完了
g++ はすでに最新バージョンです。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 1 個。

で、 g++ もインストールされているのを確認、

a-wada:~$ cd pai
a-wada:~/pai$ g++ -O2 pi-pyo.cpp -lgmpxx -o pyo
/tmp/cc1jKbR0.o: In function `__gmp_expr<__mpf_struct [1], __mpf_struct [1]>::__gmp_expr(__gmp_expr<__mpf_struct [1], __mpf_struct [1]> const&)':
pi-pyo.cpp:(.text._ZN10__gmp_exprIA1_12__mpf_structS1_EC2ERKS2_[_ZN10__gmp_exprIA1_12__mpf_structS1_EC5ERKS2_]+0x18): undefined reference to `__gmpf_get_prec'


    .......................................................................................

std::cout の未定義エラーは消えました。

GMP ライブラリをインストールし直せば OK になるでしょう。
有難うございました。

オフライン

 

Board footer

Powered by FluxBB