フォーラム: ドキュメント作成 (スレッド #36013)

Objects/DataManip/ctfInfo/のmakeが失敗します。 (2014-09-29 18:10 by kinoshita-eos #74479)

ToolsのctfDeterminationFromPhaseComparisonにてmakeが通りませんでしたので、
Objects/DataManip/ctfInfo/にてmakeしましたが、下記のエラーメッセージが表示されました。

chmod: ../../../../../lib/X86MAC64//libEosObjects.so: No such file or directory
make: [../../../../../lib/X86MAC64//libctfInfo.so] Error 1 (ignored)
C Header Install
ctfDeterminationFromPhaseComparison.h
ctfInfoWrite2.h
ctfZeroPoint.h
lastigmatismDetection.h
lctfDetermination.h
lmrcFSInfoScatteringAngularDistributionAverageSection.h
powerspectraTangentLine.h
Installation has completed: libctfInfo.a

これによりlictfInfo.so のmakeで失敗していると思います。
もう少し調査して、ミスかバグかを追記します。

Add: Objects/DataManip/ctfInfo/のmakeが失敗します。 (2014-09-30 11:09 by kinoshita-eos #74483)

[メッセージ #74479 への追記]
現状、rebuildを掛けたところmakeが通り、実行できるようになりました。

【経緯1】
そのままの環境ファイルを使い、OSX 10.8でコンパイルしようとすると、
src/Config/x86Mac64_8.inc
がありませんというエラーメッセージが出て失敗するので、

現状の一時対策として、環境ファイルの
EOS_HOST(DIR)=x86Mac_8
について"_8"をなしにしてコンパイルしています。

(略記)
環境ファイル1:EOS_HOST(DIR)=x86Mac_8 (そのまま)
環境ファイル2:EOS_HOST(DIR)=x86Mac (一時対策済み)

先日まではしばらく環境ファイル2をsourceして使用していました。
このときはmakeに失敗していました。


【経緯2】
下記のような手順ミスをしていました。
環境ファイル2をsourceしたまま、環境ファイル1をenvとし(sourceせずに)、
make setting & make rebuild

これにより、一見環境ファイル2でコンパイルが通ったと錯覚していました。


【経緯3】
環境ファイル1をsourceして、
make setting & make rebuild

src/Config/x86Mac64_8.inc
というエラーメッセージでこれまでと同様にコンパイルが通りませんでした。


【経緯4】
環境ファイル2をenvにしsourceして、
make setting & make rebuild

試しにctfDeterminationFromPhaseComparison -hを試してみたところ
なぜか動作するようになりました。(他のオプションも動作)


make前の.soファイルの有無が関係しているかもしれないとのことですので、
念のため今回の経緯を上記のように残しておきます。
#74479 への返信

Re: Add: Objects/DataManip/ctfInfo/のmakeが失敗します。 (2015-01-15 12:12 by kinoshita-eos #75251)

[メッセージ #74483 への追記]
現在、同様の現象が発生しております。
今後、同様のエラーが発生したときのために記録を残しておきます。

今回は#74483の処置を行ってもコンパイルできませんでした。

【報告事項】
コンパイルするときに指定している-Iの順番に関係があるかもしれないと思い、下記の変更を行ったところコンパイル出来るようになりました。(ctfZeroPointで確認)
但し、こちらの処置で本当に良いのかは今後に検討する内容と考えます。

(ファイル名)
/Eos/src/Config/DefineTool.inc

(8行目付近)
#INCLUDEDIR = -I$(VPATH)/../inc -I${TOP}/include
INCLUDEDIR = -I${TOP}/include -I$(VPATH)/../inc

このような処置を考えた経緯は、ctfZeroPoint.hはObjects(${TOP}/includeにコピーされている)とTools($(VPATH)/../inc)に両方存在したので、読み込む内容が逆になるがあるかもしれないと思ったからです。
#74483 への返信