2017-01-25 4 views
0

У меня есть 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

Да это строка.

Может быть, я должен был сформулирован как второй вариант вместо не вариант

Перед началом миграции кода, мне нужно, чтобы исключить любую возможность опций компилятора, чтобы заставить его работать работать как ,

Я могу установить дополнительные библиотеки, если это необходимо, и изменить способ его компиляции. На самом деле не редактирование кода.

+0

Ну, 'memset' находится в' cstring'. Почему включить правильный заголовок не вариант ?! – Biffen

+2

Несвязанный, но вы уверены, что 'sizeof (100)' вам нужно? –

+0

@ Биффен, я не уверен, компилирую ли я правильный путь. и не уверен, что я должен действительно изменить код. Поскольку он работает с более старой версией ОС и GCC, мне нужно понять, что это можно устранить, изменив способ его компиляции. –

ответ

0

I am including below header file: sting

строка?

Any idea how to make it work with just string include file?

Вы можете создать фиктивный string файл и сохранить его с другими заголовками. Внутри string вы делаете, например

#include <string.h> 

Migrating code base to include string.h or cstring is not an option

Следует заметить, что вы, скорее всего, не будет в состоянии порта код 6.2, если вы не можете изменить его даже в этой небольшой степени. 4.1 и 6.2: лет, поэтому ваш код будет Определенно требует изменений/исправлений для работы с новым компилятором.

+0

@KrishSanj Если вы можете исправить свой код, чтобы использовать 'string.h', это, конечно, предпочтительнее. – yugr

+1

В C++ используйте 'cstring', а не' string.h'. – Biffen

+0

@Biffen Есть ли особые преимущества от этого? – yugr

 Смежные вопросы

  • Нет связанных вопросов^_^