OsiriXをBuildしてみる
仕事でDICOM画像を扱う可能性があるっぽいので、OsiriXを自家Buildしてみるココロミ。
http://www.osirix-viewer.com/Documentation/Guides/Development/index.html を見ながら。
まず、targetとかを調整する。Architecturesを64bitにしてみたりBaseSDKを10.10にしてみたり。
そして、Unzip Binariesをする。
ここまでは簡単。
そして、schemaをUnzip BinariesからOsirixにしてBuildすると
ld: warning: directory not found for option '-L/Users/fukuit/Projects/osirix/Binaries/KDU' ld: warning: directory not found for option '-LSDK' ld: warning: ignoring file /Users/fukuit/Projects/osirix/Binaries/KDU SDK/libkdu_v73R.a, missing required architecture x86_64 in file /Users/fukuit/Projects/osirix/Binaries/KDU SDK/libkdu_v73R.a (1 slices) Undefined symbols for architecture x86_64: "_kdu_available", referenced from: -[DCMPixelDataAttribute convertJPEG2000ToHost:] in DCMPixelDataAttribute.o -[DCMPixelDataAttribute encodeJPEG2000:quality:] in DCMPixelDataAttribute.o "_kdu_compressJPEG2K", referenced from: -[DCMPixelDataAttribute encodeJPEG2000:quality:] in DCMPixelDataAttribute.o "_kdu_decompressJPEG2K", referenced from: -[DCMPixelDataAttribute convertJPEG2000ToHost:] in DCMPixelDataAttribute.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
あれ?どうしたもんかな。ああ、なるほど「KDU SDK」という名前にspaceを含むフォルダがあって、それが上手くldに渡ってないんだな。
で、ソレってXcodeで扱うファイルのどこに書いてあるんだろうか。うーむ。.xcodprojのどこかにSearch Pathを設定してるんだろうと思うんだけどな。
エラーの原因はそうじゃなかった
エラーの原因は32bit版のlibkdu_v73R.aをリンクしようとしていることだった。これ、64bit版の自家buildはできないってことかな?OsiriXから32bit版のlibraryのbinaryしか配布されていないってことは。
よくよく調べたら、OsiriXは64bit版を有償で販売することでマネタイズしてるんだな。なるほど、64bit版の自家buildなんてされたら困るワケだ。
しょうがないな、32bit版のbuildで我慢するか。そもそも自家buildしてみたいってだけだし。
32bit版はbuildできた
MacBook Airだと時間かかるけれど、buildできた。warningがめちゃくちゃ多いのは何とかならんのか、しかし。
libkdu_v73R.a の64bit版なり、ソースコードなりは手にはいらんものか、しかし。