Q1: Есть ли ограничение на размер исходного файла для qcc? A1: qcc = gcc. Точнее: qcc — это легкая оболочка, которая вызывает gcc; всю реальную работу делает gcc. Программное обеспечение GNU, как общая философия, разработано таким образом, чтобы не налагать произвольных ограничений, и я предполагаю, что это особенно верно для gcc. Даже если существуют произвольные ограничения, вы не достигаете их, потому что у вас заканчивается системная память. Случайные ссылки: ограничения препроцессора: http://gcc.gnu.org/onlinedocs/cpp/Implementation-limits.html некоторые ограничения gcc: ограничения размера модуля gcc
Q2: Какие плохие методы программирования вызывают это? A2: Например, выгружая весь исходный код в один файл, как вы продемонстрировали. Я бы сказал, что этот вопрос не имеет отношения к вашему делу, потому что вы уже заявили, что не контролируете сгенерированный код.
Q3: Есть предложения по устранению проблемы нехватки виртуальной памяти в cc1plus? A3: а) добавьте больше оперативной памяти на ваш главный компьютер (может помочь или не помочь в зависимости от того, сколько у вас есть, и от того, является ли ваша ОС 32-битной или 64-битной); б) увеличить пространство подкачки (то же самое); c) если a/b не помогает, обновите ОС до 64-битной и повторите попытку a/b. К сожалению, это 64-битное предложение почти наверняка не применимо к версии gcc, поставляемой QNX с 6.4.1. Может быть, даже не к последнему.
В качестве общего предложения, поскольку qcc использует gcc, я бы рекомендовал, чтобы у вас была такая же сборка кода с использованием gcc хоста (gcc, который поставляется с вашим Linux). Как только это сработает, вы можете начать искать различия, которые, вероятно, сводятся к поддержке 64-битной версии.
person
maverick
schedule
06.02.2014