BoostRegex - gcc - 在AIX 5.3上简单测试给出了多个ld:0711-224警告

时间:2012-02-02 10:26:58

标签: c++ gcc boost aix

提升1.48 GCC 4.2.4 AIX 5.3 PowerPC

我有一个C应用程序,我被告知移植到C ++,我现在需要使用正则表达式。因此,自从XMAS以来我一直在学习C ++(实际上真的很喜欢它,在周几没见过妻子)。所以,我必须使用GCC将应用程序移植到AIX 5.3。我只使用boost来进行正则表达式。我有一个简单的测试示例,编译并运行正常,但在编译时我得到这些警告。任何人都可以建议a)他们可以安全地忽略b)如果没有那么我做错了什么c)有人认为浓咖啡和深夜是一个学习C ++的好计划吗?

以下是示例:     #包括     #include

bool isPluginPresent(const std::string& s)
{
    static const boost::regex e("^(Plugin|area-Hub-Plugin):\s*(.*arealdap.+)$", boost::regex::perl|boost::regex::icase);
  return boost::regex_match(s, e);
}

#include <iostream>
using namespace std;

int main()
{
    string s[6] = { "Pluuuugin: c:\\program files\\nextid.dll", 
                    "Plugin: c:\\program files\\areahub.dll",
                "AREA-Hub-Plugin: c:\\program files\\arealdap.so",
                          "AREA-Hub-Plugin: c:\\program files\\someother.so", 
                  "Hello World: I really should go to bed",
                "Plugin:            c:\\program files\\arealdap.so",};
   int i;
   for(i = 0; i < 6; ++i)
   {
       cout << "isPluginPresent " << s[i] << " returned " << isPluginPresent(s[i]) << endl;
   }

   return 0;
}

编译     g ++ -I / home / smurff / boost_1_48_0 -lpthreads example.cpp -o example /usr/local/lib/libboost_regex.a

警告就是这样的一堆:

ld:0711-224警告:重复符号:.non-virtual thunk to boost :: exception_detail :: error_info_injector :: ~error_info_injector()

感谢您的时间 丹尼

1 个答案:

答案 0 :(得分:0)

a)是的,他们可以安全地忽略。我在我的框中编译了你的代码,它很好(检查你的转义顺序)。因此,您获得的警告很可能是由您的编译器版本或平台引起的。您可以尝试升级它们。

b) -

(c)(你问过你的妻子吗?)