Ogre3dをQt4に統合する必要があります。残念ながら時代遅れのコードや提案がいくつか見つかりました。私はこのチュートリアルが好きだった
http://irmatden.developpez.com/tutoriels/qt/integration-ogre-qt/
Ogre 1.4.9(Eihorn)で動作しますが、最近のバージョン1.7.0では動作しません。最近のアプリでアプリをコンパイルすると、リンカーエラーが発生します
ogrewidget.o:関数 `OgreWidget ::〜OgreWidget()': ogrewidget.cpp:(。text+0x5b6): `Ogre :: NedPoolingImpl :: deallocBytes(void *)'への未定義の参照 ogrewidget.o:関数 `OgreWidget ::〜OgreWidget()': ogrewidget.cpp:(。text+0x666): `Ogre :: NedPoolingImpl :: deallocBytes(void *)'への未定義の参照 ogrewidget.o:関数 `OgreWidget ::〜OgreWidget()': ogrewidget.cpp:(。text+0x6f6): `Ogre :: NedPoolingImpl :: deallocBytes(void *)'への未定義の参照 ogrewidget.o:関数 `OgreWidget :: initOgreSystem()'内: ogrewidget.cpp:(。text+0x1cfb): `Ogre :: NedPoolingImpl :: allocBytes(unsigned int、char const *、int、char const *)'への未定義の参照 ogrewidget.cpp:(。text+0x1dde): `Ogre :: Root :: initialize(bool、std :: basic_string、std :: allocator> const&、std :: basic_string、std :: allocator> const&)'への未定義の参照 ogrewidget.cpp:(。text+0x2278): `Ogre :: Root :: createRenderWindow(std :: basic_string、std :: allocator> const&、unsigned int、unsigned int、bool、std :: map、std:への未定義の参照:allocator>、std :: basic_string、std :: allocator>、std :: less、std :: allocator >>、Ogre :: STLAllocator、std :: allocator> const、std :: basic_string、std :: allocator >> 、Ogre :: CategorisedAllocPolicy >> const *) ' ogrewidget.cpp:(。text+0x2c31): `Ogre :: NedPoolingImpl :: deallocBytes(void *)'への未定義の参照 ogrewidget.o:関数 `std :: _ Rb_tree、std :: allocator>、std :: pair、std :: allocator> const、std :: basic_string、std :: allocator >>、std :: _ Select1st、std ::アロケータ>const、std :: basic_string、std :: allocator >>>、std :: less、std :: allocator >>、Ogre :: STLAllocator、std :: allocator> const、std :: basic_string、std :: allocator >>、Ogre :: CategorisedAllocPolicy >> :: _ M_insert_(std :: _ Rb_tree_node_base const *、std :: _ Rb_tree_node_base const *、std :: pair、std :: allocator> const、std :: basic_string、std :: allocator >> const&)': ogrewidget.cpp :(。text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_ESt4lessISsEN4Ogre12STLAllocatorIS2_NS7_22CategorisedAllocPolicyILNS7_14MemoryCategoryE0EEEEEE10_M_insert_EPKSt18_Rb_tree_node_baseSG_RKS2_ [STD :: _ Rb_tree、スタンダード::アロケータ>、のstd ::対、スタンダード::アロケータ> CONST、STD ::のbasic_string、スタンダード::アロケータ>>のstd :: _ Select1st、 std :: allocator> const、std :: basic_string、std :: allocator >>>、std :: less、std :: allocator >>、Ogre :: STLAllocator、std :: allocator> const、std :: basic_string、std :: allocator >>、Ogre :: CategorisedAllocPolicy >> :: _ M_insert_(std :: _ Rb_tree_node_base const *、std :: _ Rb_tree_node_base const *、std :: pair、std :: allocator> const、std :: basic_string、std ::アロケータ>>const&)] + 0x40): `Ogre :: NedPoolingImpl :: allocBytes(unsigned int、char const *、int、char const *) ' ogrewidget.cpp :(。text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_ESt4lessISsEN4Ogre12STLAllocatorIS2_NS7_22CategorisedAllocPolicyILNS7_14MemoryCategoryE0EEEEEE10_M_insert_EPKSt18_Rb_tree_node_baseSG_RKS2_ [STD :: _ Rb_tree、スタンダード::アロケータ>、のstd ::対、スタンダード::アロケータ> CONST、STD ::のbasic_string、スタンダード::アロケータ>>のstd :: _ Select1st、 std :: allocator> const、std :: basic_string、std :: allocator >>>、std :: less、std :: allocator >>、Ogre :: STLAllocator、std :: allocator> const、std :: basic_string、std :: allocator >>、Ogre :: CategorisedAllocPolicy >> :: _ M_insert_(std :: _ Rb_tree_node_base const *、std :: _ Rb_tree_node_base const *、std :: pair、std :: allocator> const、std :: basic_string、std ::アロケータ>>const&)] + 0x10d): `Ogre :: NedPoolingImpl :: deallocBytes(void *)'への未定義の参照 ogrewidget.o:関数 `std :: _ Rb_tree、std :: allocator>、std :: pair、std :: allocator> const、std :: basic_string、std :: allocator >>、std :: _ Select1st、std ::アロケータ>const、std :: basic_string、std :: allocator >>>、std :: less、std :: allocator >>、Ogre :: STLAllocator、std :: allocator> const、std :: basic_string、std :: allocator >>、Ogre :: CategorisedAllocPolicy >> :: _ M_erase(std :: _ Rb_tree_node、std :: allocator> const、std :: basic_string、std :: allocator >>> *)': ogrewidget.cpp :(。text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_ESt4lessISsEN4Ogre12STLAllocatorIS2_NS7_22CategorisedAllocPolicyILNS7_14MemoryCategoryE0EEEEEE8_M_eraseEPSt13_Rb_tree_nodeIS2_E [STD :: _ Rb_tree、スタンダード::アロケータ>、のstd ::対、スタンダード::アロケータ> CONST、STD ::のbasic_string、スタンダード::アロケータ>>のstd :: _ Select1st、 std :: allocator> const、std :: basic_string、std :: allocator >>>、std :: less、std :: allocator >>、Ogre :: STLAllocator、std :: allocator> const、std :: basic_string、std :: allocator >>、Ogre :: CategorisedAllocPolicy >> :: _ M_erase(std :: _ Rb_tree_node、std :: allocator> const、std :: basic_string、std :: allocator >>> *)] + 0x47):未定義の参照`Ogre :: NedPoolingImpl :: deallocBytes(void *) ' collect2:ldが1を返しました
何が原因で、どうすれば解決できますか?