2015年3月5日木曜日

ogre-1.9 を試そうとして遭遇したエラーと解決方法

1. おためし準備

1.1. ogre-1.9 をビルドして導入

  1. git clone hg::http://bitbucket.org/sinbad/ogre/
  2. cd ogre
  3. git checkout v1-9-0
  4. mkdir build.g++
  5. cd build.g++
  6. cmake.ninja.g++.release ..
  7. ninja
  8. sudo ninja install

1.2. Building Your Project with CMake

適当なテストディレクトリーに CMake なお試し ogre プロジェクトを置いてビルド。

  1. wget http://www.ogre3d.org/tikiwiki/tiki-download_wiki_attachment.php?attId=186&download=y
  2. unzip clean_ogre_cmake_project_1-9.zip
  3. cd clean_ogre_cmake_project
  4. mkdir build.g++
  5. cmake.ninja.g++.release ..

↓遭遇したトラブル↓

1. OIS が無い・w・

--   package 'OIS' not found
-- Could not locate OIS
CMake Error at /usr/local/lib/OGRE/cmake/FindPkgMacros.cmake:120 (message):
  Required library OIS not found! Install the library (including dev
  packages) and try again.  If the library is already installed, set the
  missing variables manually in cmake.

1.1. 解決方法

sudo apt install libois-dev

2. dist/bin/OgreApp –> しかしなにもおこらなかった

cmake できたので ninja:

ninja
  ...(中略)...

ビルドできたので実行:

dist/bin/OgreApp

しかしなにもおこらなかった(ログを見ましょう):

plugins.cfg not found, automatic plugin loading disabled.
*-*-* OGRE Initialising
*-*-* Version 1.9.0 (Ghadamon)
An exception has occured: OGRE EXCEPTION(6:FileNotFoundException): 'resources.cfg' file not found! in ConfigFile::load at ../OgreMain/src/OgreConfigFile.cpp (line 82)
*-*-* OGRE Shutdown

2.2. 解決方法

手順をちゃんと見ましょう:

  1. In a console, issue the command: make
  2. You should see the make command looking for the parts of the build that are required (Ogre (obviously:)), OIS, boost, etc..) Then the compilation progress indicators
  3. Now, issue the command: make install Don’t worry: it’s a ‘fake’ install, it’s only local. What it does is copy the ‘dist’ directory over to your build directory.
  4. Run the “OgreApp” bin and you should see a blank screen with some OgreSDK info overlays. If you’ve gotten this far, your build process works!
  5. If you get errors, you might need to copy the plugins.cfg from /usr/share/OGRE to your dist directory (use the one in your source directory, not the one in the build directory): cp /usr/share/OGRE/plugins.cfg ~/programming/ogreapp/dist/bin/plugins.cfg

訳:

  1. make
  2. あるものあればできるから待ってなさい
  3. make install 案ずるな、これは フェイク でビルドディレクトリーのローカルパスへ dist を配置するだけだ
  4. OgreApp を叩け
  5. もしエラーがでたら plugings.cfg/usr/share/OGRE からコピーしてくるがよい

手順 3 やってないですね(´・ω:;.:…

ninja install
  ...(中略)...
dist/bin/OgreApp

しかしなにも起こらなかった(ログさっきと同じ):

plugins.cfg not found, automatic plugin loading disabled.
*-*-* OGRE Initialising
*-*-* Version 1.9.0 (Ghadamon)
An exception has occured: OGRE EXCEPTION(6:FileNotFoundException): 'resources.cfg' file not found! in ConfigFile::load at ../OgreMain/src/OgreConfigFile.cpp (line 82)
*-*-* OGRE Shutdown

手順 5 の「もしエラーに遭遇したら」のような気がするのでやってみる:

やって見る前に存在確認:

find .. -iname plugins.cfg
../dist/bin/plugins.cfg
../build.g++/dist/bin/plugins.cfg

アルジャナイノ…でもやってみる:

cp /usr/local/share/OGRE/plugins.cfg dist/bin/plugins.cfg

※ ogre を -DCMAKE_INSTALL_PREFIX しなければデフォルトでは /usr/share ではなく /usr/local/share にいる

dist/bin/OgreApp

しかし、なにも起こらなかった(3回目だけどログ同じ):

plugins.cfg not found, automatic plugin loading disabled.
*-*-* OGRE Initialising
*-*-* Version 1.9.0 (Ghadamon)
An exception has occured: OGRE EXCEPTION(6:FileNotFoundException): 'resources.cfg' file not found! in ConfigFile::load at ../OgreMain/src/OgreConfigFile.cpp (line 82)
*-*-* OGRE Shutdown

…モシカシテ:

cd dist/bin
./OgreApp

しかし、何も起こらなかった(プラグインはロードできるようになっていてログは別のエラーを示した):

*-*-* OGRE Initialising
*-*-* Version 1.9.0 (Ghadamon)
Creating resource group Essential
An exception has occured: OGRE EXCEPTION(5:ItemIdentityException): Cannot find an archive factory to deal with archive of type Zip in ArchiveManager::load at ../OgreMain/src/OgreArchiveManager.cpp (line 67)
*-*-* OGRE Shutdown

Ogre Forum にそれっぽいエラーの解決例が出ていた:

Ogre のビルドログを確認してみると、こんなメッセージが出ている:

-----------------------------------------------------------------------------
-- The following OPTIONAL packages could NOT be located on your system.
-- Consider installing them to enable more features from this software.
+ zziplib: Extract data from zip archives <http://zziplib.sourceforge.net>
+ OpenGL ES 1.x: Support for the OpenGL ES 1.x render system (DEPRECATED) <http://www.khronos.org/opengles/>
+ cg: C for graphics shader language <http://developer.nvidia.com/object/cg_toolkit.html>
+ POCO: POCO framework <http://pocoproject.org/>
+ GLSL Optimizer: GLSL Optimizer <http://github.com/aras-p/glsl-optimizer/>
+ HLSL2GLSL: HLSL2GLSL <http://hlsl2glslfork.googlecode.com/>
+ Doxygen: Tool for building API documentation <http://doxygen.org>
+ Softimage: Softimage SDK needed for building XSIExporter <FALSE>
+ TinyXML: TinyXML needed for building OgreXMLConverter <FALSE>
+ CppUnit: Library for performing unit tests <http://cppunit.sourceforge.net>
-----------------------------------------------------------------------------

libzip-dev ではなくて libzzip-dev なのはちょっとした味噌だと思う:

sudo apt install libzzip-dev

ついでなので、他にさくっと入れておけば良さそうなものは入れる:

sudo apt install libcppunit-dev libtinyxml-dev 

libpoco は使わなくていいなら使いたくないのでとりあえず保留。

ogre-1.9 をリビルドしてインストール:

cmake ..
ninja
sudo ninja install

OgreApp もリビルド:

ninja

実行:

cd dist/bin
./OgreApp

enter image description here

enter image description here

VSYNC を OFF にしてみると:

enter image description here

良い感じヽ(´ー`)ノ

0 件のコメント:

コメントを投稿