2017-03-31 10 views
2

私はC++で書かれたプラグインを移植しようとしています。実際にはたくさんのものがありますので、たくさんのクラスとコードもたくさんあります!コンパイラにヒープスペースがありません

しかし、プラグインをコンパイルしようとすると、コンパイラは次のエラーをスローします。致命的なエラーC1060:コンパイラのヒープスペースが不足しています。タスクマネージャを確認すると、メモリにかなりのスペースが残っていることがわかります。私も再起動しようとしました。

私はmemory allocation limitstack overflow previously asked questionsでインターネット上の通常の回答を試みました。彼らの誰も私のために働くように見えなかったので、私はここにいます。

重要なことがいくつかあります。このプラグインは次のライブラリを使用しています: FreeImage & protobuf-2.4.1 p.s. VS2012コンパイラを使ってソースコードをコンパイルしました。 エラーがこのコードの2行目に表示さ64ビットマシン

を使用すると:

#if GOOGLE_PROTOBUF_VERSION < 2004000 
#error This file was generated by a newer version of protoc which is 
#error incompatible with your Protocol Buffer headers. Please update 
#error your headers. 
#endif 
#if 2004001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION 
#error This file was generated by an older version of protoc which is 
#error incompatible with your Protocol Buffer headers. Please 
#error regenerate this file with a newer version of protoc. 
#endif 

私は失われています、誰もが正しい方向に私を指すことができますか?どうもありがとう!

+0

...どの言語を使用していますか? – Basic

+0

@Basic申し訳ありませんが、C++になります – deathNode

+0

32ビットまたは64ビットシステムでコンパイラを使用していますか? – Darklighter

答えて

1

VC++ 2015最新アップデート(Update 3)で同じ問題が発生しました。最終的には、あらかじめコンパイルされたヘッダーを無効にすることで問題が回避されることに気づきました。

これは小さなプロジェクトだったので、ビルド時間の違いはわかりませんでした。大きなプロジェクトがあり、コンパイル済みのヘッダーを使用する必要がある場合は、その一部を削除してみてください。

+0

Andrew。ありがとうございました。私は非常に説得力のある解決策を見つけることができなかったので、私は逆に進んでいくつかをオフにしました。基本的に回避策が見つかりました。この問題が再び発生する場合、私はこれを試してみる – deathNode

+1

@deathNodeあなたはあなたの作業ソリューションを新しい答えとして記述し、この質問に出くわす人がどのような新たな方向を探るのか分かります。 – KalenGi

0

したがって、2つの回避策がありました。 最初に、提供されたヘッダーの説明を単にコメントするだけで、それは魔法のように動作するようでした。

2番目のオプションは非常に適切ではないので、ライブラリ全体を再コンパイルしただけです。私は推測している、それはコンパイラのバージョンの不一致か何かだった。しかし、それはうまくいくようです。

関連する問題