#c #compiler-errors #modelica #dymola
#c #ошибки компилятора #modelica #dymola
Вопрос:
В настоящее время я пытаюсь скомпилировать программу Modelica в Dymola. Я столкнулся с проблемами, в которых говорится, что компилятору не хватает места в куче (фатальная ошибка C1060), общий размер массива не должен превышать 0x7fffffff байт (ошибка C2148) и предупреждение C4307: ‘*’: переполнение интегральной константы со знаком.
Я попытался установить флаг компилятора на /Zm, чтобы увеличить выделение памяти при компиляции, а также установить Дополнительно.CompileWith64= 2. До сих пор у меня не было успеха в компиляции моей программы, любые предложения будут оценены.
Вот несколько веб-сайтов, которые я посетил, которые могут помочь:
https://www.claytex.com/blog/dymola-compilation-process/?fbclid=IwAR2_GM6Hrj
Комментарии:
1.
total size of array must not exceed 0x7fffffff bytes
Какой у вас большой массив?2. У вас есть пример модели? Может быть проще, если вы используете свой обычный канал поддержки, поскольку они должны иметь возможность обрабатывать конфиденциальные модели.
Ответ №1:
Для меня есть два вероятных объяснения:
- Вы используете большую таблицу, которая включена в исходные коды C. Лучшее решение — иметь таблицу извне (используя Modelica.Блоки.Таблицы.Совместимый * или аналогично), возможно, с 64-разрядной компиляцией (чтобы она помещалась в адресное пространство).
- Что-то пошло не так в переводе, и массив не должен быть таким большим, и в этом случае трудно сказать больше без модели.