2009-08-18 5 views
2

При попытке связать с QT 4.5 релиз, я бегу в это сообщение об ошибкеQT 4.5 - Как включить LTCG в VS2005 при подключении к библиотекам QT?

фатальную C1047 ошибка: Объект или файл библиотеки 'C: \ Qt \ 2009.02 \ Qt \ Lib \ qtmain.lib' был , созданный со старым компилятором, чем другие объекты; восстановить старые объекты и библиотеки

Я использовал тот же компилятор для моих текущих проектов скомпилировать Qt 4.5 (VS 2005, хотя я не уверен, если я скомпилировать его с VS2005 SP1 или нет, но я использую SP1 сейчас). Проблема возникает только тогда, когда другая библиотека, которую я компилирую, имеет GL (она автоматически переключается на LTCG на VS2005). Я мог бы заставить сборку работать, если отключить всю оптимизацию во всех других библиотеках (которые не позволяют LTCG быть включенными)

Есть ли способ получить QT 4.5 для работы с процессом сборки релиза LTCG? Если мне нужно перекомпилировать, какие флаги мне нужно установить для nmake?

Кстати, проект создан с надстройкой Visual Studio QT 4.5, а для сборки релиза GL отключен автоматически.

ответ

0

Я просто столкнулся с подобной проблемой при попытке построить примеры в Qwt и сделал то же самое, что и вы, - я удалил -GL-переключатель из всех Makefile (Makefile.Release). Немного боли, но все примеры теперь работают.

Из комментариев в этом документе thread похоже, что Qt 4.5.0 теперь использует флаги/GL и/LTCG.

Обновление 2010-01-14 Новый метод, чтобы просто избавиться от всего -gl/-LTCG выпуска:

Edit C: \ Qt \ 4.5.1 \ mkspecs \ win32-msvc2008 \ QMAKE .conf (или тот, который соответствует вашей версии MSVC) и изменение линий

QMAKE_CFLAGS_RELEASE = -O2 -MD -GL 

в

QMAKE_CFLAGS_RELEASE = -O2 -MD 

й

QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /LTCG 

в

QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO 

Теперь любой Makefile, который создается будет не эти флаги присутствующих.

Обновление 2010-03-22 Похоже, что в Qt 4.6.1 исправлена ​​оригинальная проблема. Дайте ему вращение.

+0

Я использую Qt 4.5.0, что меня разочаровывает – Extrakun

0

При более внимательном рассмотрении вариантов соответствия QT 4.5 имеется флаг для включения LTCG. По умолчанию он отключен.

+0

Вы перекомпилировали Qt? – dwj