zHz00 Untitled

среда, 14 января 2015
23:59 Untitled [345]
Когда найдено решение проблемы, но непонятны механизмы её возникновения -- это плохо. А когда проблема исчезла, но почему -- непонятно -- ещё хуже.

Итак. В процессе сборки (linking) проекта в MSVS 2005 компоновщик зависает! Причём только в версии Release. В версии Debug -- всё нормально. Зависать начинает только с определённой ревизии проекта -- до этого всё нормально. В той ревизии, на которой начало зависать, было изменено с десяток файлов и добавлено 4 BMP в ресурсы.

Стал сличать конфигурации.

ОКАЗАЛОСЬ

что перестало зависать при отключении опции компоновщика /LTCG (linker-time code generation). А чтобы сработало её отключение, пришлось отключить выбрасывание неиспользуемых ресурсов и оптимизацию (/GL) .

Вот почему при таких настройках работает?

@темы: Программы, Программирование, Борьба с техникой

URL

15.01.2015 в 02:55

15.01.2015 в 02:55
Это магия.
URL

15.01.2015 в 12:22

15.01.2015 в 12:22
Это даже не "исчезла, но почему - непонятно", а "отрезал руку, больше не болит")
URL

15.01.2015 в 12:57

15.01.2015 в 12:57
himself, почему же? Хотя необходимость отключения оптимизации меня напрягает. А инкрементал оказался не при чём.
URL

15.01.2015 в 15:41

15.01.2015 в 15:41
Ошибка же появилась не из-за включения LTGG? Значит, ситуация такая: к ошибке приводит сочетание нескольких факторов, один из которых истинная причина, а другой - безобидное необходимое условие (LTGG). Отключение безобидного условия, конечно, убирает ошибку, но причина осталась, и кто знает, к чему ещё приведёт.

Кстати, ты пишешь:
> перестало зависать при отключении опции компоновщика /LTCG (linker-time code generation). А чтобы сработало её отключение, пришлось отключить выбрасывание неиспользуемых ресурсов и оптимизацию (/GL) .

А почему тогда именно при отключении LTGG, а не отключении выбрасывания ресурсов или GL? Ты же их отключил все вместе?
URL

15.01.2015 в 17:55

15.01.2015 в 17:55
himself, нет, я менял настройки по очереди. Отключение только выбрасывания ресурсов или только оптимизации к успеху не приводит. LTCG сам по себе тоже ни к чему не приводит ПОТОМУ ЧТО если те предыдущие опции не поставлены в то положение, в которое я указал, компоновщик говорит, что не может отключить LTCG. Но скорее всего, причина действительно не в этой опции. Будем искать.
URL

15.01.2015 в 18:09

15.01.2015 в 18:09
Предлагаю принести в жертву администратора-девственника.
URL
Добавить комментарий

Расширенная форма

Подписаться на новые комментарии