воскресенье, 28 марта 2010 г.

Сборка Qt Creator под ICC

Порядка трех недель назад я попробовал откомпилировать Qt Creator 1.3.1 под Ubuntu под ICC, чтобы просто посмотреть, будет ли он работать быстрее, чем тот, что можно скачать с оффсайта. Надо сказать, что следуя простой инструкции, приведенной ниже, все собирается на ура.

$ qmake qtcreator.pro
$ make

Ради интереса, я попробовал так же скомпилировать его и под Windows. Вот что выдал линкер:

    link /LIBPATH:"d:\Qt\4.6.2-ICC\lib" /NOLOGO /DLL /OUT:..\..\..\lib\qtcreator\plugins\Nokia\Debugger.dll @C:\DOCUME~1\alex\LOCALS~1\Temp\nmB5.tmp

   Creating library ..\..\..\lib\qtcreator\plugins\Nokia\Debugger.lib and object ..\..\..\lib\qtcreator\plugins\Nokia\Debugger.exp

sharedlibraryinjector.obj : error LNK2019: unresolved external symbol __imp__LookupPrivilegeValueW@12 referenced in function "private: bool __thiscall Debugger::Internal::SharedLibraryInjector::escalatePrivileges(class QString *)" (?escalatePrivileges@SharedLibraryInjector@Internal@Debugger@@AAE_NPAVQString@@@Z)

sharedlibraryinjector.obj : error LNK2019: unresolved external symbol __imp__OpenProcessToken@12 referenced in function "private: bool __thiscall Debugger::Internal::SharedLibraryInjector::escalatePrivileges(class QString *)" (?escalatePrivileges@SharedLibraryInjector@Internal@Debugger@@AAE_NPAVQString@@@Z)

sharedlibraryinjector.obj : error LNK2019: unresolved external symbol __imp__AdjustTokenPrivileges@24 referenced in function "private: bool __thiscall Debugger::Internal::SharedLibraryInjector::escalatePrivileges(class QString *)" (?escalatePrivileges@SharedLibraryInjector@Internal@Debugger@@AAE_NPAVQString@@@Z)

..\..\..\lib\qtcreator\plugins\Nokia\Debugger.dll : fatal error LNK1120: 3 unresolved externals

 

Ну, не больно-то и хотелось- код, который генерит MSVC, и так хорошо оптимизирован, чего еще надо.

Получается, что на Ubuntu я пока не могу перейти на Qt Creator, построенный с ICC. Затык по-прежнему в компиляции самой Qt. Я обновил пост про Qt, в котором написал, как ее собирать с ICC, какие проблемы при этом возникли. Я туда добавил фрагмент файла, который ICC не переваривает. Как дойдут руки, посмотрю, как заставить его компиляться.

Кстати, под Windows Qt с ICC собралась замечательно. Однако, тут сам Qt Creator не хочет линковаться...

1 комментарий:

  1. В файле src/plugins/debugger/debugger.pro надо в параметре LIBS добавить -ladvapi32:
    LIBS *= -lole32 \
    -lshell32 \
    -ladvapi32
    }

    или в makefile.release, добавить advapi.lib в параметр LIBS

    ОтветитьУдалить