0

我有 GCC 4.1.2 的 RHEL,并且我的 C++ 代码正在按预期编译。但是当我尝试使用 GCC 6.2.0 在 CentOS 7.2 上编译时,相同的代码会失败并出现以下错误:

compiling UpcSummarization.o ...
UpcSummarization.cpp: In member function âvoid UpcSummarization::LoadUpcList(std::__cxx11::string)â:
UpcSummarization.cpp:480:40: error: âmemsetâ was not declared in this scope
         memset(&pBuffer, 0, sizeof(100));
                                        ^

我包括以下头文件:

string

如果我包括string.hcstring它将通过。

知道如何使其仅与string包含文件一起使用吗?迁移代码库以包含string.hcstring不包含选项

编辑

是的,它是字符串。

也许我应该将其表述为第二个选项而不是不是一个选项

在开始代码迁移之前,我需要排除编译器选项使其按原样工作的任何可能性。

如果需要,我可以安装额外的库并更改它的编译方式。实际上没有编辑代码。

4

1 回答 1

0

我包括以下头文件:sting

细绳?

知道如何使其仅与字符串包含文件一起使用吗?

您可以创建一个虚拟string文件并将其与其他标题一起存储。例如,你在里面string

#include <string.h>

迁移代码库以包含 string.h 或 cstring 不是一种选择

请注意,如果您无法在这么小的范围内修改代码,您很可能无法将代码移植到 6.2。4.1 和 6.2相隔10年,因此您的代码肯定需要更改/修复才能与较新的编译器一起使用。

于 2017-01-25T06:15:55.840 回答