У меня есть RHEL с GCC 4.1.2, и мой код C ++ компилируется, как и ожидалось. Но тот же код, когда я пытаюсь скомпилировать в CentOS 7.2 с GCC 6.2.0, он завершается с ошибкой ниже:
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.h
или же cstring
это пройдет.
Любая идея, как заставить это работать только с string
включить файл? Перенос базы кода для включения string.h
или же cstring
это не вариант
РЕДАКТИРОВАТЬ
Да, это была строка.
Может быть, я должен был сформулировать это как второй вариант вместо не вариант
Перед началом миграции кода мне нужно исключить любую возможность параметров компилятора, чтобы она работала как есть.
Я могу установить дополнительные библиотеки при необходимости и изменить способ компиляции. Не на самом деле редактирование кода.
Я включаю ниже заголовочный файл:
ужалить
строка?
Любая идея, как заставить это работать только с включаемым файлом строки?
Вы можете создать манекен string
файл и сохранить его с другими заголовками. внутри string
ты к примеру
#include <string.h>
Перенос базы кода для включения string.h или cstring не возможен
Обратите внимание, что вы, скорее всего, не сможете портировать свой код на 6.2, если не сможете изменить его даже в такой небольшой степени. 4.1 и 6.2 являются 10 лет, так что ваш код будет определенно требовать изменений / исправлений для работы с новым компилятором.
Других решений пока нет …