Почему Visual Studio не может скомпилировать / связать при создании огромного std :: vector? - PullRequest
0 голосов
/ 28 мая 2018

Я использую Visual Studio 2015 Update 2. Я работаю над самодельным управлением ресурсами (вместо инструмента Qt qrc).Я пытаюсь встроить огромный файл (> 4Mo) в мой двоичный файл с помощью этого менеджера ресурсов.Поэтому я в итоге создаю огромный массив char *.

. В примерах ниже ... заменяется на 4 миллиона шестнадцатеричных значений, разделенных , (и делится на 10 на строку, так как компилятор имеет длину строки, имитирующую).

Когда я делаю:

static const unsigned char my_resource_data[] = { ... };

, он компилируется и связывается.

Но когда я делаю одно из:

static std::vector<uint8_t> v = { ... };
static std::vector<uint8_t> v{ ... };

Он сообщаетошибка "компилятору не хватает места в куче"

И когда я делаю одно из:

std::vector<uint8_t> v = { ... };
std::vector<uint8_t> v{ ... };

CL.exe просто вылетает!

Почему используется std::vector сделать разницу в конце?Нет ли способа успешно создать std::vector здесь?

...