我是ogre3d的初学者,我正在ogre3d中构建m i first程序,但是当我试图编译该程序时,会出现以下错误:

In function `main':
test.cpp:(.text+0x14): undefined reference to `std::allocator<char>::allocator()'
test.cpp:(.text+0x30): undefined reference to `std::basic_string<char,
std::char_traits<char>, std::allocator<char> >::basic_string(char const*,
std::allocator<char> const&)'

test.cpp:(.text+0x40): undefined reference to `std::allocator<char>::allocator()'
test.cpp:(.text+0x5c): undefined reference to `std::basic_string<char,
std::char_traits<char>, std::allocator<char> >::basic_string(char const*,
std::allocator<char> const&)'

test.cpp:(.text+0x6c): undefined reference to `std::allocator<char>::allocator()'
test.cpp:(.text+0x88): undefined reference to `std::basic_string<char,
std::char_traits<char>, std::allocator<char> >::basic_string(char const*,
std::allocator<char> const&)'

继续修复
我手动编译程序:
gcc test.cpp  -o test.o test

我的档案测试是:
#include <Ogre.h>

using namespace Ogre;

int main()
{
Root* root= new Root();

if( !root->restoreConfig() )
{
    root->showConfigDialog();
    root->saveConfig();
}
return 0;
}

如何解决我的问题?
我用的是黛比喘息药。
版本ogre3d:1.8
谢谢你的回答。

最佳答案

这是一个链接器错误。
使用pkg-config --libs检索正确的链接器选项

g++ -o test test.cpp -Wall $(pkg-config --cflags OGRE) $(pkg-config --libs OGRE) -lboost_system

如果您将ogre安装在非标准位置(例如/opt/ogre),则可能需要使用PKG_CONFIG_PATH环境变量集调用pkg config:
PKG_CONFIG_PATH=/opt/ogre/lib/pkgconfig pkg-config --libs OGRE

10-08 13:48