У меня есть 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
невозможна.
ИЗМЕНИТЬ
Да, это была струна.
Возможно, мне следовало сформулировать это как второй вариант вместо не вариант
Прежде чем начать миграцию кода, мне нужно исключить любую возможность параметров компилятора, чтобы заставить его работать как есть.
Я могу установить дополнительные библиотеки, если это необходимо, и изменить способ их компиляции. На самом деле не редактируя код.
memset
находится вcstring
. Почему включение правильного заголовка не вариант?! - person Biffen   schedule 25.01.2017sizeof(100)
это то, что вам здесь нужно? - person Moshe Gottlieb   schedule 25.01.2017cstring
, когда вы хотите использоватьmemset
(или, возможно, прекратить использованиеmemset
). - person Biffen   schedule 25.01.2017