takminの書きっぱなし備忘録 @はてなブログ

主にコンピュータビジョンなど技術について、たまに自分自身のことや思いついたことなど

ARToolKitのコンパイルメモ

結構めんどくさかったので、以下メモ。
尚、環境はWindows XP + Visual Studio 2008 Expressです。
ちなみにめんどくささの最大の原因は、source forgeに用意されているWindows版がVisual Studio 2003だったことが原因らしい。

ググってくる人たちのために、自分の紆余曲折をエラーメッセージと一緒に全部書くことにする。

あくまでメモ書きなので、ちゃんとした手順ではなく色々端折ったりしてる部分もあるので、初めてインストールしようとしう人はまずは

http://kougaku-navi.net/ARToolKit.html

あたりを参考してください。


1. glutのインストール
http://www.opengl.org/resources/libraries/glut/
http://www.opengl.org/resources/libraries/glut/glut_downloads.php

Windows
http://www.xmission.com/~nate/glut.html

glut32.dllを"C:\Windows\system32"へコピー
glut.hを"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl"へコピー
glut32.libを"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib"へコピー


2. ARToolKitのインストール
トップページ:
http://www.hitl.washington.edu/artoolkit/

以下から
http://sourceforge.net/projects/artoolkit/files/

ARToolKit-2.72.1-bin-win32.zip
DSVL-0.0.8b.zip
OpenVRML-0.14.3-win32.zip

をダウンロード。

ARToolKit-2.72.1-bin-win32.zip
を解凍して"ARToolKit"フォルダを"C:\Program Files"以下に移動した。

ARToolKit.slnを開く
Release(Intel)にしてソリューションのビルド

以下のエラー

LINK : fatal error LNK1181: 入力ファイル 'libjpeg.lib' を開けません。

OpenVRMLダウンロード
OpenVRML-0.14.3-win32.zipを解凍して、OpenVRMLフォルダをARToolKitフォルダの下へ移動。


js32.dllをOpenVRML\binから{ARToolKit}\binへコピー

ARToolKitフォルダの「構成プロパティ」でlibARvrmlとsimpleVRMLをenableに。

で、再度ビルド。
すると、こんなエラーが出た。

29>antlr.lib(BitSet.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>antlr.lib(String.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>antlr.lib(MismatchedTokenException.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>antlr.lib(BaseAST.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>antlr.lib(TokenBuffer.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>antlr.lib(NoViableAltException.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>antlr.lib(CommonToken.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>antlr.lib(Token.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>antlr.lib(RecognitionException.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>antlr.lib(Parser.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>antlr.lib(LLkParser.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>antlr.lib(ASTRefCount.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>openvrml.lib(bounding_volume.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>openvrml.lib(img.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>openvrml.lib(system.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>openvrml-gl.lib(viewer.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>openvrml.lib(scope.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>openvrml.lib(script.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>openvrml.lib(vrml97node.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>openvrml.lib(doc.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>openvrml.lib(node_type_ptr.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>openvrml.lib(scope_ptr.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>openvrml.lib(node.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>openvrml.lib(field.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>openvrml.lib(browser.obj) : error LNK2019: 未解決の外部シンボル "__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ) が関数 "class std::ctype const & __cdecl std::use_facet >(class std::locale const &)" (??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z) で参照されました。
29>openvrml.lib(node_class_ptr.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>openvrml.lib(field_value_ptr.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>openvrml.lib(node_ptr.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)" は未解決です。
29>antlr.lib(BitSet.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(String.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(MismatchedTokenException.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(BaseAST.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(TokenBuffer.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(NoViableAltException.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(CommonToken.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(Token.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(RecognitionException.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(Parser.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(LLkParser.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(ASTRefCount.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(bounding_volume.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(img.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(system.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml-gl.lib(viewer.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(scope.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(script.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(vrml97node.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(doc.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(node_type_ptr.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(scope_ptr.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(node.obj) : error LNK2019: 未解決の外部シンボル "__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z) が関数 "protected: __thiscall openvrml::color_node::color_node(class openvrml::node_type const &,class openvrml::scope_ptr const &)" (??0color_node@openvrml@@IAE@ABVnode_type@1@ABVscope_ptr@1@@Z) で参照されました。
29>openvrml.lib(field.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(browser.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(node_class_ptr.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(field_value_ptr.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(node_ptr.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(BitSet.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(String.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(MismatchedTokenException.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(BaseAST.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(TokenBuffer.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(NoViableAltException.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(CommonToken.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(Token.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(RecognitionException.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(Parser.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(LLkParser.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>antlr.lib(ASTRefCount.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(bounding_volume.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(img.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(system.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml-gl.lib(viewer.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(scope.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(script.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(vrml97node.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(doc.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(node_type_ptr.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(scope_ptr.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(node.obj) : error LNK2019: 未解決の外部シンボル "__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z) が関数 "protected: __thiscall openvrml::font_style_node::font_style_node(class openvrml::node_type const &,class openvrml::scope_ptr const &)" (??0font_style_node@openvrml@@IAE@ABVnode_type@1@ABVscope_ptr@1@@Z) で参照されました。
29>openvrml.lib(field.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(browser.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(node_class_ptr.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(field_value_ptr.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(node_ptr.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z)" は未解決です。
29>openvrml.lib(browser.obj) : error LNK2019: 未解決の外部シンボル "__declspec(dllimport) public: __thiscall std::basic_string,class std::allocator >::basic_string,class std::allocator >(class std::basic_string,class std::allocator >::const_iterator,class std::basic_string,class std::allocator >::const_iterator)" (__imp_??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@Vconst_iterator@01@0@Z) が関数 "public: class std::basic_string,class std::allocator > __thiscall openvrml::Vrml97Parser::stringValue(void)" (?stringValue@Vrml97Parser@openvrml@@QAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) で参照されました。
29>openvrml.lib(browser.obj) : error LNK2019: 未解決の外部シンボル "__declspec(dllimport) public: class std::basic_string,class std::allocator >::const_iterator __thiscall std::basic_string,class std::allocator >::begin(void)const " (__imp_?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AVconst_iterator@12@XZ) が関数 "public: class std::basic_string,class std::allocator > __thiscall openvrml::Vrml97Parser::stringValue(void)" (?stringValue@Vrml97Parser@openvrml@@QAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) で参照されました。
29>openvrml.lib(browser.obj) : error LNK2019: 未解決の外部シンボル "__declspec(dllimport) public: class std::basic_string,class std::allocator >::const_iterator __thiscall std::basic_string,class std::allocator >::end(void)const " (__imp_?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AVconst_iterator@12@XZ) が関数 "public: class std::basic_string,class std::allocator > __thiscall openvrml::Vrml97Parser::stringValue(void)" (?stringValue@Vrml97Parser@openvrml@@QAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) で参照されました。
29>openvrml.lib(doc.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: class std::basic_string,class std::allocator >::const_iterator __thiscall std::basic_string,class std::allocator >::end(void)const " (__imp_?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AVconst_iterator@12@XZ)" は未解決です。
29>openvrml.lib(doc.obj) : error LNK2019: 未解決の外部シンボル "__declspec(dllimport) public: class std::basic_string,class std::allocator >::iterator __thiscall std::basic_string,class std::allocator >::begin(void)" (__imp_?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@XZ) が関数 "private: bool __thiscall openvrml::doc2::filename(char *,unsigned int)" (?filename@doc2@openvrml@@AAE_NPADI@Z) で参照されました。
29>libjpeg.lib(jerror.obj) : error LNK2001: 外部シンボル "__iob" は未解決です。
29>libpng.lib(pngerror.obj) : error LNK2001: 外部シンボル "__iob" は未解決です。
29>libpng.lib(pngrutil.obj) : error LNK2019: 未解決の外部シンボル __iob が関数 _png_handle_pHYs で参照されました。
29>c:\Program Files\ARToolKit\examples\simpleVRML\..\..\bin\simpleVRML.exe : fatal error LNK1120: 外部参照 8 が未解決です。
29>ビルドログは "file://c:\Program Files\ARToolKit\examples\simpleVRML\Release\BuildLog.htm" に保存されました。
29>simpleVRML - エラー 93、警告 13

ネットを色々と探し回ったところ、OpenVRMLを再コンパイルすれば治るとのこと。


3. OpenVRMLをリビルド
C:\Program Files\ARToolKit\OpenVRML\src\openvrml-0.14.3\ide-projects\Windows\VisualC7\OpenVRML

OpenVRML.sln
を起動して、コンパイルするがコンパイルエラー。

そこで、以下を参考にコードを修正
http://ameblo.jp/hidelab/entry-10154213023.html
http://www.hitlabnz.org/forum/showthread.php?t=287

まず
http://www.dll-files.com/dllindex/dll-files.shtml?msvcp71d

http://www.dll-files.com/dllindex/dll-files.shtml?msvcr71d
からそれぞれ
msvcp71d.dllとmsvcpr71d.dll
をダウンロードして、{ARToolKit}\binへコピー

Token.hpp(76) :

inline operator<(RefToken l,RefToken r); //{return true;}

int inline operator<(RefToken l,RefToken r); //{return true;}

へ変更

AST.hpp(151):

inline operator<(RefAST l,RefAST r); // {return true;}

int inline operator<(RefAST l,RefAST r); // {return true;}

へ変更

regerror.c(116):

regerror(errcode, preg, errbuf, errbuf_size)
int errcode;
const regex_t *preg;
char *errbuf;
size_t errbuf_size;

regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size)

へ変更

http://sourceforge.net/projects/gnuwin32/files/libpng/
からlibpng-1.2.37-lib.zipをダウンロード
libpng-1.2.37-lib\lib\libpng.lib

{ARToolKit}\OpenVRML\dependencies\lib\libpng.lib
としてコピー

http://sourceforge.net/projects/gnuwin32/files/jpeg/
からjpeg-6b-4-lib.zipをダウンロード
jpeg-6b-4-lib\lib\jpeg.libを
{ARToolKit}\OpenVRML\dependencies\lib\libjpeg.lib
としてコピー

で、コンパイルすると、

2>------ ビルド開始: プロジェクト: lookat, 構成: Release Win32 ------
2>リンクしています...
2>LINK : fatal error LNK1104: ファイル 'libc.lib' を開くことができません。

と怒られたので、lookatのプロパティページでリンカ→入力→特定ライブラリの無視にlibc.libを加えた。

コンパイルしたところ成功。
できたライブラリファイル(openvrml, openvrml-gl等フォルダの下のReleaseフォルダ内)を"C:\Program Files\ARToolKit\OpenVRML\dependencies\lib"へコピー。

その後再度ARToolKitコンパイルをしたところ、無事成功。