[openrtm-users 00579] FedoraCore4でRTCのビルドエラー

7 個の投稿 / 0 new
最終投稿
root
オフライン
Last seen: 1日 2時間 前
登録日: 2009-06-23 14:31
[openrtm-users 00579] FedoraCore4でRTCのビルドエラー

佐藤と申します、よろしくお願いします。

今回縁あってOpenRTMをFedoraCore4に
インストールしてRTCを作成しようと思っております。

インストールは無事終了してサンプルバイナリの
実行も問題ないのですが、rtc-templateで生成した
ソースコードのビルドでエラーとなっております。

$ make -f Makefile.ConsoleIn
g++ -o ConsoleInComp ConsoleIn.o ConsoleInComp.o `rtm-config --libs`
ConsoleIn.o(.gnu.linkonce.d._ZTC9ConsoleIn516_N7POA_RTC23DataFlowComponentActionE[vtable
for ConsoleIn]+0xec): undefined reference to `virtual thunk to
PortableServer::ServantBase::_add_ref()'
ConsoleIn.o(.gnu.linkonce.d._ZTC9ConsoleIn516_N7POA_RTC23DataFlowComponentActionE[vtable
for ConsoleIn]+0xf0): undefined reference to `virtual thunk to
PortableServer::ServantBase::_remove_ref()'
ConsoleIn.o(.gnu.linkonce.d._ZTC9ConsoleIn516_N7POA_RTC23DataFlowComponentActionE[vtable
for ConsoleIn]+0x138): undefined reference to
`PortableServer::ServantBase::_refcount_value()'

・・・・・・・・・・・・・・・・・・・・・

というようにomniORBのPortableServer::ServantBaseなどが
見つからないようです。

インストールは、
「FedoraCore用」の「Fedora 一括インストール・スクリプト」
で行いました。
OpenRTMは、0.4.2がインストールされたようです。
$ rpm -qa | grep OpenRTM
OpenRTM-aist-example-0.4.2-0.fc4
OpenRTM-aist-doc-0.4.2-0.fc4
OpenRTM-aist-devel-0.4.2-0.fc4
OpenRTM-aist-0.4.2-0.fc4

何かアドバイスなどもらえればありがたいと思います。
---

未定義
root
オフライン
Last seen: 1日 2時間 前
登録日: 2009-06-23 14:31
[openrtm-users 00580] FedoraCore4でRTCのビルドエラー

佐藤様

産総研の安藤と申します。

> 佐藤と申します、よろしくお願いします。

こちらこそよろしくお願いいたします。

> 今回縁あってOpenRTMをFedoraCore4に
> インストールしてRTCを作成しようと思っております。
>
> インストールは無事終了してサンプルバイナリの
> 実行も問題ないのですが、rtc-templateで生成した
> ソースコードのビルドでエラーとなっております。
>
> $ make -f Makefile.ConsoleIn
> g++ -o ConsoleInComp ConsoleIn.o ConsoleInComp.o `rtm-config --libs`
> ConsoleIn.o(.gnu.linkonce.d._ZTC9ConsoleIn516_N7POA_RTC23DataFlowComponentActionE[vtable
> for ConsoleIn]+0xec): undefined reference to `virtual thunk to
> PortableServer::ServantBase::_add_ref()'
> ConsoleIn.o(.gnu.linkonce.d._ZTC9ConsoleIn516_N7POA_RTC23DataFlowComponentActionE[vtable
> for ConsoleIn]+0xf0): undefined reference to `virtual thunk to
> PortableServer::ServantBase::_remove_ref()'
> ConsoleIn.o(.gnu.linkonce.d._ZTC9ConsoleIn516_N7POA_RTC23DataFlowComponentActionE[vtable
> for ConsoleIn]+0x138): undefined reference to
> `PortableServer::ServantBase::_refcount_value()'
>
> ・・・・・・・・・・・・・・・・・・・・・
>
> というようにomniORBのPortableServer::ServantBaseなどが
> 見つからないようです。
>
> インストールは、
> 「FedoraCore用」の「Fedora 一括インストール・スクリプト」
> で行いました。
> OpenRTMは、0.4.2がインストールされたようです。
> $ rpm -qa | grep OpenRTM
> OpenRTM-aist-example-0.4.2-0.fc4
> OpenRTM-aist-doc-0.4.2-0.fc4
> OpenRTM-aist-devel-0.4.2-0.fc4
> OpenRTM-aist-0.4.2-0.fc4

こちらでも、Fedora4でサンプルをrtc-templateで生成して試してみましたが、
同じ現象は再現されず、正常にコンパイルできました。

1. rtc-template の --helpで出てくるサンプル
  (サービスポート無し)を生成しコンパイル
問題なし

2. pkg_install_fedora.sh -u ですべてアンインストール後
  再度pkg_install_fedora.sh ですべてインストール
問題なし

3. rtm/config_rtc.h の RTC_CORBA_CXXMAPPING11 を
  defineしてサンプルをコンパイル
問題なし

エラーメッセージからすると、OpenRTMとomniORBのバージョンがあっていない
様な気がします(omniORBが4.1系?
ただ、Fedora4のomniORBはyumでインストールすると4.0.7が入ったので、
バージョンが上がったということではないと思います。(上記2.で確認)

omniORBのバージョンはいくつでしょうか?
また、ご自分でomniORBまたは、OpenRTMをソースからビルドして
インストールされたことはありませんか?

root
オフライン
Last seen: 1日 2時間 前
登録日: 2009-06-23 14:31
[openrtm-users 00581] FedoraCore4でRTCのビルドエラー

産総研の安藤様、佐藤です。
さっそくのアドバイスありがとうございます。

------- snip -----

>> OpenRTMは、0.4.2がインストールされたようです。
>> $ rpm -qa | grep OpenRTM
>> OpenRTM-aist-example-0.4.2-0.fc4
>> OpenRTM-aist-doc-0.4.2-0.fc4
>> OpenRTM-aist-devel-0.4.2-0.fc4
>> OpenRTM-aist-0.4.2-0.fc4
>
> こちらでも、Fedora4でサンプルをrtc-templateで生成して試してみましたが、
> 同じ現象は再現されず、正常にコンパイルできました。
>
> 1. rtc-template の --helpで出てくるサンプル
>   (サービスポート無し)を生成しコンパイル
> 問題なし
>
> 2. pkg_install_fedora.sh -u ですべてアンインストール後
>   再度pkg_install_fedora.sh ですべてインストール
> 問題なし
>
> 3. rtm/config_rtc.h の RTC_CORBA_CXXMAPPING11 を
>   defineしてサンプルをコンパイル
> 問題なし
>
> エラーメッセージからすると、OpenRTMとomniORBのバージョンがあっていない
> 様な気がします(omniORBが4.1系?
> ただ、Fedora4のomniORBはyumでインストールすると4.0.7が入ったので、
> バージョンが上がったということではないと思います。(上記2.で確認)
>
> omniORBのバージョンはいくつでしょうか?

4.0.7です。
omniORB-servers-4.0.7-2
omniORB-doc-4.0.7-2
omniORB-utils-4.0.7-2
omniORB-4.0.7-2
omniORB-bootscripts-4.0.7-2
omniORB-devel-4.0.7-2

> また、ご自分でomniORBまたは、OpenRTMをソースからビルドして
> インストールされたことはありませんか?

まだありません。

上記の方法でですべてアンインストール後、再度すべて
インストールしてみましたが同じリンクエラーでした。
何が違うのでしょうかね??

インストールされたモジュールは、
ace-5.5.3-1.FC4
ace-devel-5.5.3-1.FC4

OpenRTM-aist-devel-0.4.2-0.fc4
OpenRTM-aist-doc-0.4.2-0.fc4
OpenRTM-aist-example-0.4.2-0.fc4
OpenRTM-aist-0.4.2-0.fc4

omniORBは上記と同様

不勉強で恐縮ですが、OpenRTMをソースからビルドして
インストールすると原因がわかるでしょうか・・・。

root
オフライン
Last seen: 1日 2時間 前
登録日: 2009-06-23 14:31
[openrtm-users 00582] FedoraCore4でRTCのビルドエラー

佐藤様

産総研 安藤です

了解しました。

ためしにビルドしようとしたコンポーネントのソースをお送りいただけますか?
また、ソースからOpenRTMをビルドして試してみていただけますか。

> tar xvzf OpenRTM-aist-???.tar.gz
> cd OpenRTM-aist
> ./configure ; make
> su
# make install

でOpenRTMをインストールできます。
その後、コンポーネントを同様にビルドしてみていただけますか?

よろしくお願いいたします。

> 産総研の安藤様、佐藤です。
> さっそくのアドバイスありがとうございます。
>
> ------- snip -----
>
>>> OpenRTMは、0.4.2がインストールされたようです。
>>> $ rpm -qa | grep OpenRTM
>>> OpenRTM-aist-example-0.4.2-0.fc4
>>> OpenRTM-aist-doc-0.4.2-0.fc4
>>> OpenRTM-aist-devel-0.4.2-0.fc4
>>> OpenRTM-aist-0.4.2-0.fc4
>>
>> こちらでも、Fedora4でサンプルをrtc-templateで生成して試してみましたが、
>> 同じ現象は再現されず、正常にコンパイルできました。
>>
>> 1. rtc-template の --helpで出てくるサンプル
>>   (サービスポート無し)を生成しコンパイル
>> 問題なし
>>
>> 2. pkg_install_fedora.sh -u ですべてアンインストール後
>>   再度pkg_install_fedora.sh ですべてインストール
>> 問題なし
>>
>> 3. rtm/config_rtc.h の RTC_CORBA_CXXMAPPING11 を
>>   defineしてサンプルをコンパイル
>> 問題なし
>>
>> エラーメッセージからすると、OpenRTMとomniORBのバージョンがあっていない
>> 様な気がします(omniORBが4.1系?
>> ただ、Fedora4のomniORBはyumでインストールすると4.0.7が入ったので、
>> バージョンが上がったということではないと思います。(上記2.で確認)
>>
>> omniORBのバージョンはいくつでしょうか?
>
> 4.0.7です。
> omniORB-servers-4.0.7-2
> omniORB-doc-4.0.7-2
> omniORB-utils-4.0.7-2
> omniORB-4.0.7-2
> omniORB-bootscripts-4.0.7-2
> omniORB-devel-4.0.7-2
>
>> また、ご自分でomniORBまたは、OpenRTMをソースからビルドして
>> インストールされたことはありませんか?
>
> まだありません。
>
> 上記の方法でですべてアンインストール後、再度すべて
> インストールしてみましたが同じリンクエラーでした。
> 何が違うのでしょうかね??
>
> インストールされたモジュールは、
> ace-5.5.3-1.FC4
> ace-devel-5.5.3-1.FC4
>
> OpenRTM-aist-devel-0.4.2-0.fc4
> OpenRTM-aist-doc-0.4.2-0.fc4
> OpenRTM-aist-example-0.4.2-0.fc4
> OpenRTM-aist-0.4.2-0.fc4
>
> omniORBは上記と同様
>
> 不勉強で恐縮ですが、OpenRTMをソースからビルドして
> インストールすると原因がわかるでしょうか・・・。
>
>
>
>

root
オフライン
Last seen: 1日 2時間 前
登録日: 2009-06-23 14:31
[openrtm-users 00583] FedoraCore4 で RTC のビルドエラー

静岡大の清水です。

関係ないかもしれませんが情報提供です。

undefined reference to 'virtual thunk to...
のようなエラーは、ライブラリをコンパイルしたgccと
実行ファイルを作成するときのgccのバージョンが
違うと出ることがあるようです。

omniORBをコンパイルしたgccと
RTCをコンパイルしているgccのバージョン
を調べてみるとよいかもしれません。

root
オフライン
Last seen: 1日 2時間 前
登録日: 2009-06-23 14:31
[openrtm-users 00585] FedoraCore4 で RTC のビルドエラー

清水様

安藤です

情報ありがとうございます。

> 静岡大の清水です。
>
> 関係ないかもしれませんが情報提供です。
>
> undefined reference to 'virtual thunk to...
> のようなエラーは、ライブラリをコンパイルしたgccと
> 実行ファイルを作成するときのgccのバージョンが
> 違うと出ることがあるようです。
>
> omniORBをコンパイルしたgccと
> RTCをコンパイルしているgccのバージョン
> を調べてみるとよいかもしれません。

問題のソース・バイナリを佐藤さんから頂いて、こちらでビルドしてみたところ、
同様のエラーが出ましたが、make clean してから再ビルドすると、
特に問題なくコンパイルが通りました。
ソースではなく、.oに問題があったようです。

清水さんのご指摘のgccのバージョンを調べるため、
.oをのぞいてみたのですが、どちらも
GCC: (GNU) 4.0.2 20051125 (Red Hat 4.0.2-8)
という文字列があったので、gccのバージョンは同じようです。

そこで、nmでclean前(リンクできない)とclean後(リンクできる)の.oの
シンボルを取り出しdiffで比較してみたのですが、
> diff -u リンクできる リンクできない

U _ZN14PortableServer11ServantBaseD0Ev
U _ZN14PortableServer11ServantBaseD1Ev
U _ZN14PortableServer11ServantBaseD2Ev
- U _ZN14PortableServer19RefCountServantBase11_remove_refEv
- U _ZN14PortableServer19RefCountServantBase8_add_refEv
-00000000 W _ZN14PortableServer19RefCountServantBaseC2Ev
- U _ZN14PortableServer19RefCountServantBaseD0Ev
- U _ZN14PortableServer19RefCountServantBaseD1Ev
- U _ZN14PortableServer19RefCountServantBaseD2Ev

のような結果となったので、やはりこのオブジェクトはomniORB-4.1系の
環境でビルドされたものであることが濃厚ですね。

ためしに、omniORB-4.1環境のubuntu8.04で.oを作ってnmをとってみたのですが、
問題の.o同様 RefCountServantBase 関係のシンボルがなく ServantBase のみ
となっていました。

佐藤様
もし、これ以外にも情報がございましたら、教えていただけませんか?

以上、よろしくお願いいたします。

root
オフライン
Last seen: 1日 2時間 前
登録日: 2009-06-23 14:31
[openrtm-users 00586] FedoraCore4 で RTC のビルドエラー

安藤様、清水様
お世話になります、佐藤です。

情報提供ありがとうございます。
情報提供を依頼して大変申し訳ないのですが、
RTM環境構築の作業時間が切迫していたため
急遽Fedora-8に切り替えこちらではうまくいきました。

また、元のFedora-Core4は潰してしまったので
以前の情報が無くなってしまいました。
まことに勝手次第で申し訳ありません。

今思い出してみると、
(1) ACEインストールの後、omniORBをtar.gzファイルで
  DLしてソースビルドから入れましたが、OpenRTM-aistの
  RPMがライブラリ依存エラーでインストールできなかったため
  一旦make uninstallで削除しました。
  版は、4.0か4.1かまでは全く意識していませんでした。

(2)その後omniORBをRPM単体でDLしてインストールしました。
 これも、版が4.0か4.1かまでは全く意識していませんでした。

(3)Fedora一括インストールがあるのを知り、
 それを行なって以下のビルドエラーの状況になったという次第です。
 (2)のomniORBをアンインストールしたかどうか覚えておらず
 一括インストールしたかも知れません。
 rpmコマンドで確認したら4.0.7だったということです。

(1)、(2)の残骸が残っていたのかどうかが怪しそうですが・・・。

> 清水様
>
> 安藤です
>
> 情報ありがとうございます。
>
>> 静岡大の清水です。
>>
>> 関係ないかもしれませんが情報提供です。
>>
>> undefined reference to 'virtual thunk to...
>> のようなエラーは、ライブラリをコンパイルしたgccと
>> 実行ファイルを作成するときのgccのバージョンが
>> 違うと出ることがあるようです。
>>
>> omniORBをコンパイルしたgccと
>> RTCをコンパイルしているgccのバージョン
>> を調べてみるとよいかもしれません。
>
> 問題のソース・バイナリを佐藤さんから頂いて、こちらでビルドしてみたところ、
> 同様のエラーが出ましたが、make clean してから再ビルドすると、
> 特に問題なくコンパイルが通りました。
> ソースではなく、.oに問題があったようです。
>
> 清水さんのご指摘のgccのバージョンを調べるため、
> .oをのぞいてみたのですが、どちらも
> GCC: (GNU) 4.0.2 20051125 (Red Hat 4.0.2-8)
> という文字列があったので、gccのバージョンは同じようです。
>
> そこで、nmでclean前(リンクできない)とclean後(リンクできる)の.oの
> シンボルを取り出しdiffで比較してみたのですが、
>> diff -u リンクできる リンクできない
>
> U _ZN14PortableServer11ServantBaseD0Ev
> U _ZN14PortableServer11ServantBaseD1Ev
> U _ZN14PortableServer11ServantBaseD2Ev
> - U _ZN14PortableServer19RefCountServantBase11_remove_refEv
> - U _ZN14PortableServer19RefCountServantBase8_add_refEv
> -00000000 W _ZN14PortableServer19RefCountServantBaseC2Ev
> - U _ZN14PortableServer19RefCountServantBaseD0Ev
> - U _ZN14PortableServer19RefCountServantBaseD1Ev
> - U _ZN14PortableServer19RefCountServantBaseD2Ev
>
> のような結果となったので、やはりこのオブジェクトはomniORB-4.1系の
> 環境でビルドされたものであることが濃厚ですね。
>
> ためしに、omniORB-4.1環境のubuntu8.04で.oを作ってnmをとってみたのですが、
> 問題の.o同様 RefCountServantBase 関係のシンボルがなく ServantBase のみ
> となっていました。
>
> 佐藤様
> もし、これ以外にも情報がございましたら、教えていただけませんか?
>
> 以上、よろしくお願いいたします。

コメントを投稿するにはログインまたはユーザー登録を行ってください

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

Webサイト統計
ユーザ数:2195
プロジェクト統計
RTコンポーネント307
RTミドルウエア35
ツール22
文書・仕様書2

Choreonoid

モーションエディタ/シミュレータ

OpenHRP3

動力学シミュレータ

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク