У меня есть RHEL с GCC 4.1.2, и мой код на C++ компилируется, как ожидалось. Но тот же самый код, когда я пытаюсь скомпилировать на CentOS 7.2 с GCC 6.2.0 это терпит неудачу с ошибкой ниже:Миграция GCC от 4.1.2 до 6.2.0 и от RHEL 5.5 до 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.h
или cstring
его пройдет.
Любая идея, как заставить ее работать только с string
, включает в себя файл? Перенос кода базы для включения string.h
или cstring
не вариант
EDIT
Да это строка.
Может быть, я должен был сформулирован как второй вариант вместо не вариант
Перед началом миграции кода, мне нужно, чтобы исключить любую возможность опций компилятора, чтобы заставить его работать работать как ,
Я могу установить дополнительные библиотеки, если это необходимо, и изменить способ его компиляции. На самом деле не редактирование кода.
Ну, 'memset' находится в' cstring'. Почему включить правильный заголовок не вариант ?! – Biffen
Несвязанный, но вы уверены, что 'sizeof (100)' вам нужно? –
@ Биффен, я не уверен, компилирую ли я правильный путь. и не уверен, что я должен действительно изменить код. Поскольку он работает с более старой версией ОС и GCC, мне нужно понять, что это можно устранить, изменив способ его компиляции. –