プロジェクト

全般

プロフィール

バグ #1996

RtORB+OpenRTMがMac上でコンパイルが通らない

n-ando13年以上前に追加. 13年以上前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
-
開始日:
2011/01/13
期日:
進捗率:

100%

予定工数:

説明

原さんからレポート

make
Making all in build
make1: Nothing to be done for `all'.
Making all in src
Making all in lib
Making all in coil
Making all in include
Making all in coil
make all-am
cp -p ../../posix/coil/*.h .
cp -p ../../common/*.h .
make5: Nothing to be done for `all-am'.
Making all in posix
Making all in coil
/bin/sh ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I.. -I../../include -Wall -fPIC -O2 -Wall -fPIC -O2 -MT Allocator.lo -MD -MP -MF .deps/Allocator.Tpo -c -o Allocator.lo Allocator.cpp
../../libtool: line 2085: Allocator.cpp: command not found
libtool: compile: g++ -DHAVE_CONFIG_H -I.. -I../../include -Wall -fPIC -O2 -Wall -fPIC -O2 -MT Allocator.lo -MD -MP -MF .deps/Allocator.Tpo -c "" -fno-common -DPIC -o .libs/Allocator.o
i686-apple-darwin10-g++-4.2.1: no input files
make5: * [Allocator.lo] Error 1
make4:
[all-recursive] Error 1
make3:
[all-recursive] Error 1
make2:
[all-recursive] Error 1
make1:
[all-recursive] Error 1
make: *
[all-recursive] Error 1

となってコンパイルできません。Linuxでは、できるようですが、、、、
configure.ac等を確認していただけないでしょうか。

installed_ports (4.72 KB) installed_ports n-ando, 2011/01/14 07:14
rtorb_macosx.patch (2.04 KB) rtorb_macosx.patch n-ando, 2011/01/14 07:14

履歴

#1 n-ando13年以上前に更新

原さんの追加情報

原です。私の方でも少し調べてみました。
どうもMacでconfigure.acしかない状態(リポジトリの状態)では、
build/autogen で生成されたconfigureでは、コンパイルできないようです。
生成されたconfigureが悪いのかどうかわかりませんが、前のソースでも
build/autogenで生成すると同様のエラーがでます。

Webにあるtgzで固められたソースコードの中にあるconfigureでは、コンパイルできますので、
autogenのスクリプトに不具合がある(多分、autoconfなどのバージョンよるか、Macでは少し改良されている
かもしれません)のかもしれません。

#2 n-ando13年以上前に更新

原さんへの返事

こちらのmacで調べてみましたが、原さんのようなlibtoolがらみの
問題は特に再現できませんでした。以下のようにコンパイルしました。

1. libIDLをmacportsでインストール
2. endian をmacportsでインストール
3. /usr/include/i386/endian.h を /usr/include/endian.h にリンクを張る
4.RtORBを添付のパッチのように変更
5. RtORB をコンパイル
6. OpenRTM-aistをチェックアウト
7. OpenRTM-aist を -with-rtorb= でコンパイル
./build/autogen
./configure --with-rtorb=...
make
途中、stub/skel/common/h のソース内の : : を :: に変更

原さんのようなlibtoolがらみでのエラーは特にありませんでした。
ただ、RtORBの方で、rtorb-idlが生成したコードに、以前問題になっていた
名前解決子の"::"が": :"になってしまう問題が発生していました。
こちらのlibidlは0.8.14ですが、これが問題なんでしょうか?
とりあえず一括置換でコンパイルは通りました。

添付に、こちらのmacportsのインストール済みパッケージ一覧をお送りします。

ちなみに、Mac OS Xではe2fsprogsをインストールしなくてもデフォルトで
/usr/include/uuid/uuid.h があり、libc内にUUIDの関数があります。
ですので-luuidをしなくてもUUID関連の関数が利用できます。

結論として、automake/autoconf/litoolはバージョンを選ぶので、
開発者のところでそれらが正しく動けは問題ないと思います。
OpenRTM-aistではそれぞれ1.9, 2.59, 1.5 を仮定しています。

そちらの、automake/autoconf/libtoolのバージョンを教えていただけますか?

#3 n-ando13年以上前に更新

原です。libtoolについて、もう少し調べてみました。
結論からすると、libtool2.4でもコンパイルはできます。
但し、現在のautogenのスクリプトで autoreconf を呼び出しては
コンパイルできません。これは、libtool.m4が2つ存在しており、
1つは、 /opt/local/share/aclocalの下にあり、もう1つが、/usr/share/aclocalの
したにあります。この2つは、どうやら別のようです。
MacでXcodeをインストールするとほとんどのツールは、/opt 以下にインストールされる
ようです。そのため、autogen のスクリプトで、libtool.m4をさがすときに、
/opt/local/share/aclocal を /usr/share/aclocal の前に検索すれば、問題は
回避できます。

build/autogenの変更をお願いいたします。

#4 n-ando13年以上前に更新

  • ステータス新規 から 終了 に変更
  • 担当者n-ando にセット
  • 進捗率0 から 100 に変更

autogen で m4マクロを /optの下を探すように修正。

refs 2033

他の形式にエクスポート: Atom PDF