2017-01-25 6 views
0

RHELにはGCC 4.1.2があり、私のC++コードは期待どおりにコンパイルされています。しかし、私はGCCとのCentOS 7.2上でコンパイルしようと、同じコードは、それが以下のエラーで失敗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

@Biffen、正しい方法でコンパイルしているかどうかはわかりません。実際にコードを変更する必要があるかどうかはわかりません。古いバージョンのOSとGCCで動作しているので、コンパイル方法を変更することで修正できることを理解する必要があります。 –

答えて

0

I am including below header file: sting

文字列?

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

あなたはダミーstringファイルを作成し、他のヘッダとそれを保存することができます。 string内には、たとえば、あなたも、このわずかな程度にそれを変更できない場合、あなたはおそらく6.2にあなたのコードのポートにできません

#include <string.h> 

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

注意ください。 4.1と6.2は年離れているので、あなたのコードはとなるでしょう。確かには新しいコンパイラで動作するように変更/修正が必要です。

+0

@KrishSanj 'string.h'を使うようにコードを修正できるのならもちろん当然です。 – yugr

+1

C++では 'string.h'ではなく' cstring'を使います。 – Biffen

+0

@Biffenこれは特別なメリットがありますか? – yugr

関連する問題