Russian Qt Forum
Май 04, 2024, 00:16 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с компиляцией qt 3.3.4 (Intel C++ 8.1)  (Прочитано 7886 раз)
ANM
Гость
« : Апрель 22, 2005, 13:14 »

Возникла проблема при инсталляции и сборке Qt v3.3.4 компилятором Intel C++ v8.1.
Предыдущую версию Qt v3.3.2 собирал без проблем. Грустный
Цитировать
icl /c /Foqunicodetables.obj  /W3 /nologo /O1  /I. /Igenerators /Igenerators\unix
/Igenerators\win32 /Igenerators\mac /I..\include /I..\src\tools  /I..\mkspecs\win32

Цитировать

msvc  /DQT_NO_TEXTCODEC /DQT_NO_UNICODETABLES /DQT_LITE_COMPONENT
/DQT_NODLL /DQT_NO_STL  /DQT_NO_COMPRESS /DUNICODE /DHAVE_QCONFIG_CPP
..\src\tools\qunicodetables.cpp qunicodetables.cpp

Цитировать

    link /DEBUG /OUT:qmake.exe project.obj main.obj makefile.obj
unixmake.obj unixmake2.obj borland_bmake.obj mingw_make.obj  msvc_nmake.obj msvc_dsp.obj msvc_vcproj.obj option.obj
winmakefile.obj projectgenerator.obj  metrowerks_xml.obj
pbuilder_pbx.obj msvc_objectmodel.obj property.obj meta.obj qtmd5.obj
qstring.obj qlocale.obj quuid.obj qtextstream.obj qiodevice.obj qglobal.obj qgdict.obj qcstring.obj qdatastream.obj  qgarray.obj
qbuffer.obj qglist.obj qptrcollection.obj qfile.obj qfile_win.obj qregexp.obj
qgvector.obj  qgcache.obj qbitarray.obj qdir.obj qfileinfo_win.obj
qdir_win.obj qfileinfo.obj qdatetime.obj  qstringlist.obj qmap.obj
qlibrary.obj qlibrary_win.obj qconfig.obj qsettings.obj qsettings_win.obj
qunicodetables.obj ole32.lib advapi32.lib

Microsoft (R) Incremental Linker Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
LINK : fatal error LNK1104: cannot open file "libm.lib"
Building qmake failed, return code 2
NMAKE : fatal error U1077: 'link' : return code '0x450'
Stop.
The configure process failed.

Меня настораживают две вещи:
1. используется линкер от VC6 link вместо интеловского xilink, хотя при компиляции объектников используется интеловский компилятор icl.
2. Зачем то линкеру подсовывается библиотека libm.lib. Такой библиотеки нет вообще. Может она вылезла из make для linux: хотели libm.a подсунуть и получили libm.lib.

Что посоветуете?

Конфигурация
Цитировать

QMAKESPEC...................win32-icc
Maketool....................nmake
Environment:
    INCLUDE=
      C:\Program Files\MSVS\VC98\INCLUDE\stlport
      C:\Program Files\boost\1.29.0
      C:\Program Files\Microsoft SDK\Include\.
      C:\Program Files\MSVS\VC98\atl\include
      C:\Program Files\MSVS\VC98\mfc\include
      C:\Program Files\MSVS\VC98\include
      C:\Program Files\ObjectiveStudio\Include\Foundation\Compatibility\Common
      C:\Program Files\ObjectiveStudio\Include\Foundation\Compatibility\MVC
      C:\Program Files\ObjectiveStudio\Include
      C:\Program Files\Rogue Wave\Stingray Studio\Include
      C:\Program Files\Rogue Wave\Stingray Studio\Regex\Include
    LIB=
      C:\Program Files\Microsoft SDK\Lib\.
      C:\Program Files\MSVS\VC98\mfc\lib
      C:\Program Files\MSVS\VC98\lib
      C:\Program Files\Rogue Wave\Stingray Studio\Lib
      C:\Program Files\Rogue Wave\Stingray Studio\Regex\Lib\VC6
    PATH=
      C:\Qt\3.3.4\bin
      C:\WINDOWS\SYSTEM32
      C:\WINDOWS
      C:\WINDOWS\SYSTEM32\WBEM
\BIN
      C:\PROGRAM FILES\MICROSOFT SDK\BIN\.
      C:\PROGRAM FILES\MICROSOFT SDK\BIN\WINNT\.
      C:\PROGRA~1\TCL\BIN
      C:\PROGRAM FILES\SUPPORT TOOLS\
      C:\CYGWIN\BIN
      C:\PROGRAM FILES\MSVS\COMMON\TOOLS\WINNT
      C:\PROGRAM FILES\MSVS\COMMON\MSDEV98\BIN
      C:\PROGRAM FILES\MSVS\COMMON\TOOLS
      C:\PROGRAM FILES\MSVS\VC98\BIN
      C:\PROGRAM FILES\COMMON
      C:\PROGRAM FILES\ROGUE WAVE\STINGRAY STUDIO\BIN
      C:\PROGRAM FILES\ROGUE WAVE\STINGRAY STUDIO\LIB
      C:\PROGRAM FILES\ROGUE WAVE\STINGRAY STUDIO\REGEX\LIB\VC6
      C:\Program Files\Intel\CPP\Compiler80\Ia32\Bin
      C:\Program Files\Intel\CPP\IDB80\Bin

Цитировать

Debug symbols...............yes
Thread support..............yes
Accessibility support.......yes
Big Textcodecs..............yes
Tablet support..............no
STL support.................yes
Additional exports..........no
Exception support...........yes
RTTI support................yes
OpenGL support..............yes
Image formats:
    GIF support.............yes
    MNG support.............plugin
    JPEG support............qt
    PNG support.............qt
Styles:
    Windows.................yes
    Windows XP..............yes
    Motif...................plugin
    Platinum................plugin
    MotifPlus...............plugin
    CDE.....................plugin
    SGI.....................plugin
Sql Drivers:
    ODBC....................no
    MySQL...................no
    OCI.....................no
    PostgreSQL..............no
    TDS.....................no
    DB2.....................no
    SQLite..................no
    Interbase...............no
Записан
ANM
Гость
« Ответ #1 : Апрель 26, 2005, 17:49 »

Проблема была в системной переменной среды окружения LIB  Шокированный
Инсталлятор Qt почему то не видел системной переменной среды окружения LIB в которой была прописана ссылка на %INTEL_COMPILER80%\Ia32\Lib. Как только я перенес эту ссылку из системной переменной среды окружения в пользовательскую, все заработало...
Правда при компиляции была куча предупреждений вида:
Код:
kernel\qpixmap_win.cpp(984): warning #1572: floating-point equality and inequality comparisons are unreliable
      if ( mat.m11() == 1.0F && mat.m22() == 1.0F )

и
Код:

C:\Qt\3.3.4\include\qsqlindex.h(77): warning #1125: function "QSqlRecord::toString(const QString &, const QString &) const" is hidden by "QSqlIndex::toString" -- virtual function override intended?
      QString          toString( const QString& prefix = QString::null

ерунда конечно, но неприятно.
А вообще популярна такая связка? Qt + Intel C++
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #2 : Апрель 26, 2005, 20:01 »

Код:

kernel\qpixmap_win.cpp(984): warning #1572: floating-point equality and inequality comparisons are unreliable
      if ( mat.m11() == 1.0F && mat.m22() == 1.0F )

Нельзя сравнивать напрямую float числа. Можно делать так
EPS=0.001
if(fabs(a-b)<EPS){
  a примерно равно b
}

Цитировать
Qt + Intel C++

Такая связка, на мой взгляд совсем не популярна. Компилер этот не все ставят. А ускорять GUI смысла не вижу. Вот математику - это да.
Записан
ANM
Гость
« Ответ #3 : Апрель 27, 2005, 10:52 »

Цитировать
Нельзя сравнивать напрямую float числа. Можно делать так
EPS=0.001
if(fabs(a-b)<EPS){
a примерно равно b
}

Я знаю. Но это не у меня float числа напрямую сравниваются а в библиотеке Qt  :wink:.
Например:
src/canvas/qcanvas.cpp строки 1088, 2024.
src/kernel/qpainter_win.cpp строки 1199, 1200, 1201
src/kernel/qwidget_win.cpp строка 1784
ну и т.д.
Цитировать
Такая связка, на мой взгляд совсем не популярна. Компилер этот не все ставят. А ускорять GUI смысла не вижу. Вот математику - это да.

А в моем приложении есть математика. Но это не главное. Intel C++ использует C++ frontend от  Edison Design Group а это вроде самый стандартный C++  Улыбающийся
В настроящий момент я работаю в VC6 MFC+Stingray Studio. А Qt я пока изучаю, вот и пробую различные варианты.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #4 : Апрель 27, 2005, 11:31 »

насчет первого - это QTшники не позаботились

насчет приложения с математикой
обычно делается так
GUI и матчасть - это 2 разных проекта
матчасть обычно либа или DLL

PS: А если все работает то можно и забить Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 22.