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

发布于 2025-01-01 22:14:23 字数 1465 浏览 1 评论 0原文

提升1.48 海湾合作委员会 4.2.4 AIX 5.3 PowerPC

我有一个 C 应用程序,被告知要移植到 C++,现在我需要使用正则表达式。因此,自从圣诞节以来,我一直在学习 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-虚拟重击boost::exception_detail::error_info_injector::~error_info_injector()

感谢您的宝贵时间 丹尼

Boost 1.48
GCC 4.2.4
AIX 5.3 PowerPC

I have a C app that I have been told to port to C++ and I now have a need to use regex. So since XMAS I have been learning C++ (And actually really loving it, not seen the wife in weeks tbh). So, I have to port an app over to AIX 5.3 using GCC. I am only using boost for the regex. I have a simple test example that compiles and runs fine, but when compiling I get these warnings. Can anyone advise on a) are they safe to ignore b)If not then what am I doing wrong c) Does anyone thing that strong coffee and late nights is a good plan for learning C++?

Here is the example:
#include
#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;
}

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

And the warnings are a whole bunch like this:

ld: 0711-224 WARNING: Duplicate symbol: .non-virtual thunk to boost::exception_detail::error_info_injector::~error_info_injector()

Thanks for your time
Danny

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无戏配角 2025-01-08 22:14:23

a) 是的,忽略它们是安全的。我在我的盒子里编译了你的代码,它很好(检查你的 \s 转义序列)。因此,您收到的警告可能是由您的编译器版本或平台引起的。您可以尝试升级这些。

b) --

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

a) Yes, they are safe to ignore. I compiled your code in my box and it is fine (check your \s escape sequence). So the warnings you are getting are likely to be caused by your compiler version or platform. You might try to upgrade those.

b) --

c) (Have you asked your wife?)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文