Создание большого приложения на Solaris висит без какой-либо информации - PullRequest
0 голосов
/ 10 декабря 2010

Я пытаюсь скомпилировать довольно большое приложение на Solaris.Компиляция в AIX вызвала проблему из-за того, что буфер командной строки был слишком мал (ARG_MAX).

В Solaris он успешно компилирует большинство приложений, но затем просто зависает и безо всяких ошибок зависает и ничего не делает дляне менее часа.

Я использую его на SunOS 5.10 Sparc 32 bit.

Есть идеи, как узнать, что происходит или что может быть причиной такого поведения?

Ответы [ 3 ]

0 голосов
/ 10 декабря 2010

Что вам, возможно, придется сделать:

  1. Закомментируйте или удалите 99% кода и скомпилируйте его
  2. Добавьте около 5% кода обратно и скомпилируйте это

    если последнее, что вы добавили, вызвало зависание часа, то разделите его на

  3. Вернуться к шагу 2

0 голосов
/ 12 января 2011

Только для тех, кто столкнется с этим в будущем. Проблема была в том, что флаг оптимизации заставлял ДЕЙСТВИТЕЛЬНО долго компилироваться. Я говорю 1+ час для одного файла cpp.

Это большой проект. Кроме того, была проблема с Sys Admin на коробке SUN, из-за которой у меня не хватало ресурсов процессора. Увеличение, которое решило эту проблему, сделало ее быстрее и в разумные сроки.

Надеюсь, это поможет

0 голосов
/ 10 декабря 2010

Не могу сказать, зависла ли компиляция или само ваше приложение.

Если приложение зависает, просто следуйте обычным шагам отладки: либо запустите его в отладчике и посмотрите, когда оно умирает, либо добавьте операторы печати. ​​

Если компилятор умирает, он всегда умирает в одном и том же файле? Если вы скомпилируете этот файл самостоятельно, он все еще зависает? Если это так, попробуйте truss с компилятором при попытке собрать файл, который зависает. Вы можете обнаружить, что он блокирует ввод-вывод в ожидании какого-либо несуществующего файла или чего-то подобного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...