2012-09-01 37 views
5

私はresources.qrcに入れて、たくさんの小さな画像を必要とするWindowsゲームを開発しています。 14MB。Qtコンパイルエラー:「メモリ不足134mb」「cc1plus.exeが見つかりません」

唯一のエラーをコンパイルしようとすると、「134 MBのメモリが不足しています」、「cc1plus.exeが見つかりません」。

どうすれば対応できますか? ありがとうございます。

+0

@fritzoneのおかげで、私は、QRCせずに自分のファイルをロードする方法がわかりません。私にリンクやコードを教えてもらえますか?どうもありがとうございました。 –

答えて

7

qrcに入れてはいけません。個々のリソース(またはイメージごとに新しいqrcファイル)として保存し、アプリケーションの起動時にそれらをロードしてください。 Qtはqrc_XXXXX.cppファイルを生成します。このファイルでは、このファイル内のリソースファイルXXXXX内のすべてのリソースのchar配列の形式でバイナリデータを効果的に挿入します(14MBイメージの場合は1つの配列、つまり14680064バイト0x27)は、1つのファイルに...それは大きくなる!)、非常に貧しいコンパイラは、それらの咳をする可能性が高い...

3

私の状況では、.exeに私の状況では、 。

このエラーの後、私は追加のRAMを買う(プロジェクトは非常に重要である)、その後、私のRAM(6 GBから)12ギガバイトとなりました。

しかし、エラーが後に:) dissaperaredていなかったとき、私は非常に驚きましたいくつかのグーグル、最後に、私は答えthereを見つけた。問題はcc1plus.exe実行可能メモリの制限です。だから、Qtの場合には、この問題は(Windows 7のために、他人のためにMINGW32 4.9.2は、おそらく単純にパスを変更する必要がある)、この段階で解決することができます。

  1. お使いのOSが32ビットである場合には、CMDに(管理者として)bcdedit /set IncreaseUserVa 3072
  2. インストールmasm32;
  3. cmdを開く(adminでも)。
  4. cd C:\Qt\Tools\mingw492_32\libexec\gcc\i686-w64-mingw32\4.9.2がすべてです

C:\masm32\bin\editbin.exe /LARGEADDRESSAWARE cc1plus.exeを入れて置きます。 Qtの5.7.0は

+0

ありがとう、私はwin32実行可能ファイルにlargeaddressawareフラグを設定するには、editbin.exeが必要です。 – DanC225

3

のWindows 7SP1のx86 4GBのRAM :)それが役に立つことを願っています私はQtの中で資源に大きなファイルを追加したとき、私は同じ問題を抱えていた、私はエラーが発生しました:

cc1plus.exe:-1: error: out of memory allocating 1073745919 bytes

ソリューション:

*.proファイルにCONFIG += resources_bigを追加します。

私はここでそれを取った:私は常にそれを使用するので、あなたの答えを https://forum.qt.io/topic/62655/cc1plus-exe-out-of-memory-60mb-encrypted-resource-file/8

関連する問題