April 3, 2009

Liquid(コンパイル編): Part 3

コンパイル: XX回目

実際にやっていたときにやったコンパイルの回数、とても多かったと思います。
>なんだかんだいって、ちょっとずつ前に進んでいけたのでとても良かったです。

もしかしたら・・・・・・

ひとつだけ、ちょっとうろ覚えなんですけども・・・。

Visual Studio に 「liqRibTranslator.cpp を unicode で保存し直してください」みたいなことを言われたような、言われなかったような、記憶が曖昧な部分があります。もしかしたら、これまでの記事通りにやったら、それが原因でうまくいかないかもしれません。たぶん、その場合もソースコードをSVNでダウンロードしたら解決するかもしれません。(プログラミング、わからないことだらけで、あくまでも楽観的な予想になってしまいます。

Pixie だけうまくいかない

コンパイルの際、Pixie Release にすると、Liquid本体だけがうまくコンパイルできません。
displaydriveのコンパイルは成功しています。

1>   ライブラリ .\..../bin/Pixie/win32/Release/Objects/liquid.lib とオブジェクト .\../../bin/Pixie/win32/Release/Objects/liquid.exp を作成中
>1>liqPreviewShader.obj : error LNK2019: 未解決の外部シンボル _RI_VERBATIM が関数 "int __cdecl liquidOutputPreviewShader(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,struct liqPreviewShaderOptions const &)" (?liquidOutputPreviewShader@@YAHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABUliqPreviewShaderOptions@@@Z) で参照されました。
1>liqRibClipPlaneData.obj : error LNK2001: 外部シンボル "_RI_VERBATIM" は未解決です。
1>liqRibTranslator.obj : error LNK2001: 外部シンボル "_RI_VERBATIM" は未解決です。
1>liqRiCommands.obj : error LNK2001: 外部シンボル "_RI_VERBATIM" は未解決です。
1>liqPreviewShader.obj : error LNK2019: 未解決の外部シンボル _RI_BILINEAR が関数 "int __cdecl liquidOutputPreviewShader(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,struct liqPreviewShaderOptions const &)" (?liquidOutputPreviewShader@@YAHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABUliqPreviewShaderOptions@@@Z) で参照されました。
1>liqPreviewShader.obj : error LNK2019: 未解決の外部シンボル _RI_P が関数 "int __cdecl liquidOutputPreviewShader(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,struct liqPreviewShaderOptions const &)" (?liquidOutputPreviewShader@@YAHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABUliqPreviewShaderOptions@@@Z) で参照されました。
1>liqPreviewShader.obj : error LNK2019: 未解決の外部シンボル _RI_RGBA が関数 "int __cdecl liquidOutputPreviewShader(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,struct liqPreviewShaderOptions const &)" (?liquidOutputPreviewShader@@YAHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABUliqPreviewShaderOptions@@@Z) で参照されました。
1>liqRibTranslator.obj : error LNK2001: 外部シンボル "_RI_RGBA" は未解決です。
1>liqPreviewShader.obj : error LNK2019: 未解決の外部シンボル _RI_RGB が関数 "int __cdecl liquidOutputPreviewShader(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,struct liqPreviewShaderOptions const &)" (?liquidOutputPreviewShader@@YAHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABUliqPreviewShaderOptions@@@Z) で参照されました。
1>liqRibTranslator.obj : error LNK2019: 未解決の外部シンボル _RI_COMMENT が関数 "private: class MStatus __thiscall liqRibTranslator::ribPrologue(void)" (?ribPrologue@liqRibTranslator@@AAE?AVMStatus@@XZ) で参照されました。
1>liqRiCommands.obj : error LNK2001: 外部シンボル "_RI_COMMENT" は未解決です。
1>liqWriteArchive.obj : error LNK2001: 外部シンボル "_RI_COMMENT" は未解決です。
1>liqRibTranslator.obj : error LNK2019: 未解決の外部シンボル _RI_FOV が関数 "private: class MStatus __thiscall liqRibTranslator::framePrologue(long)" (?framePrologue@liqRibTranslator@@AAE?AVMStatus@@J@Z) で参照されました。
1>liqRibTranslator.obj : error LNK2019: 未解決の外部シンボル _RiBSplineBasis が関数 "private: class MStatus __thiscall liqRibTranslator::objectBlock(void)" (?objectBlock@liqRibTranslator@@AAE?AVMStatus@@XZ) で参照されました。
1>liqWriteArchive.obj : error LNK2001: 外部シンボル "_RiBSplineBasis" は未解決です。
1>..../bin/Pixie/win32/Release/liquid.mll : fatal error LNK1120: 外部参照 8 が未解決です。
1>ビルドログは "file://d:\lab\renderman\liquid\workspace\bin\Pixie\win32\Release\Objects\BuildLog.htm" に保存されました。
1>liquid - エラー 16、警告 54

外部シンボルってなんなんだろう。。。
うーん・・・、ヘッダーファイルとか、関連づけ?
リンクのことかな?

理由はわからないですが、ひとまずはここまで。

今回は、Releaseでコンパイルしたけれども、
その状態ならPixieを使ったRIB書き出し(?)もOK!ってことになるんでしょうか。

うーん・・・、それもわからない。