сборка статической Qt(проблема с qmake)
В общем, собираю Qt. Параметры:
-static -release -no-qt3support -platform win32-g++ -arch windows
Собираю через MinGw(g++ 4.5.2). Трабла в чем, при сборке qmake ругается на невозможность привести wchar_t к char. Посмотрел в исходничках.
if(type == "os") {
ret = "Windows";
} else if(type == "name") {
DWORD name_length = 1024;
wchar_t name[1024];
if (GetComputerName(name, &name_length)) //от на это ругается
ret = QString::fromWCharArray(name);
Начал собирать nmak'ом, собралось. Вопрос в чем - как сделать, чтобы и g++ юникод понимал?
Например
D:\USER\qt-everywhere-opensource-src-4.7.3>configure -release -nomake examples
-nomake demos -no-exceptions -no-stl -no-rtti -no-qt3support -no-scripttools -no
-openssl -no-opengl -no-webkit -no-phonon -no-style-motif -no-style-cde -no-styl
e-cleanlooks -no-style-plastique -no-sql-sqlite -platform win32-g++ -static
...
g++ -static-libgcc -static-libstdc++ -s -o qmake.exe project.o main.o makefile.o
unixmake.o unixmake2.o mingw_make.o option.o winmakefile.o projectgenerator.o p
roperty.o meta.o makefiledeps.o metamakefile.o xmloutput.o pbuilder_pbx.o borlan
d_bmake.o msvc_nmake.o msvc_vcproj.o msvc_vcxproj.o msvc_objectmodel.o msbuild_o
bjectmodel.o symmake.o initprojectdeploy_symbian.o symmake_abld.o symmake_sbsv2.
o symbiancommon.o registry.o epocroot.o qbitarray.o qbuffer.o qbytearray.o qcryp
tographichash.o qvsnprintf.o qbytearraymatcher.o qconfig.o qdatetime.o qdir.o qd
iriterator.o qfile.o qtemporaryfile.o qfileinfo.o qabstractfileengine.o qfsfilee
ngine.o qfsfileengine_iterator.o qfsfileengine_win.o qfsfileengine_iterator_win.
o qglobal.o qhash.o qiodevice.o qlibraryinfo.o qlist.o qlinkedlist.o qlocale.o q
malloc.o qmap.o qregexp.o qtextcodec.o qutfcodec.o qstring.o qstringlist.o qsyst
emlibrary.o qtextstream.o quuid.o qvector.o qurl.o qsettings.o qsettings_win.o q
variant.o qmetatype.o qxmlstream.o qxmlutils.o qnumeric.o -lole32 -luuid
g++: unrecognized option '-static-libstdc++'
copy qmake.exe D:\USER\qt-everywhere-opensource-src-4.7.3\bin\qmake.exe
Скопировано файлов: 1.
...
Qt is now configured for building. Just run mingw32-make.
To reconfigure, run mingw32-make confclean and configure.
upd:Добавил -D UNICODE и все заработало.
[QUOTE=qmake.conf]
#
# qmake configuration for win32-g++
#
# Written for MinGW
#
MAKEFILE_GENERATOR = MINGW
TEMPLATE = app
CONFIG += qt warn_on release link_prl copy_dir_files debug_and_release debug_and_release_target precompile_header
QT += core gui
DEFINES += UNICODE QT_LARGEFILE_SUPPORT
...
[/QUOTE]
Решил снова пересобрать, но уже другие ошибки. Сначала такой глюк был с QML, но я его закомментил, потом такая же фигня случилась с Ассистентом. Ни у кого не было?
mingw32-make[1]: Entering directory `E:/qt_src/tools'
cd assistant\ && mingw32-make -f Makefile
mingw32-make[2]: Entering directory `E:/qt_src/tools/assistant'
cd lib\fulltextsearch\ && mingw32-make -f Makefile
mingw32-make[3]: Entering directory `E:/qt_src/tools/assistant/lib/fulltextsearch'
mingw32-make -f Makefile.Release
mingw32-make[4]: Entering directory `E:/qt_src/tools/assistant/lib/fulltextsearch'
mingw32-make[4]: Nothing to be done for `first'.
mingw32-make[4]: Leaving directory `E:/qt_src/tools/assistant/lib/fulltextsearch'
mingw32-make[3]: Leaving directory `E:/qt_src/tools/assistant/lib/fulltextsearch'
cd lib\ && mingw32-make -f Makefile
mingw32-make[3]: Entering directory `E:/qt_src/tools/assistant/lib'
mingw32-make -f Makefile.Release
mingw32-make[4]: Entering directory `E:/qt_src/tools/assistant/lib'
mingw32-make[4]: Nothing to be done for `first'.
mingw32-make[4]: Leaving directory `E:/qt_src/tools/assistant/lib'
mingw32-make[3]: Leaving directory `E:/qt_src/tools/assistant/lib'
cd tools\ && mingw32-make -f Makefile
mingw32-make[3]: Entering directory `E:/qt_src/tools/assistant/tools'
cd assistant\ && mingw32-make -f Makefile
mingw32-make[4]: Entering directory `E:/qt_src/tools/assistant/tools/assistant'
mingw32-make -f Makefile.Release
mingw32-make[5]: Entering directory `E:/qt_src/tools/assistant/tools/assistant'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-subsystem,windows -o ..\..\..\..\bin\assistant.exe object_script.assistant.Release -L"e:\qt_src\lib" -L"e:\qt_src\plugins\sqldrivers" -L"e:\qt_src\lib" -lmingw32 -lqtmain tmp\obj\release_static\assistant_res.o -lQtHelp -lQtWebKit -lQtSql -lQtXml -lQtCLucene -ljscore -lshlwapi -lversion -lphonon -lQtNetwork -lQtGui -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lmsimg32 -lQtCore -lkernel32 -luser32 -lshell32 -luuid -lole32 -ladvapi32 -lws2_32
mingw32-make[5]: Leaving directory `E:/qt_src/tools/assistant/tools/assistant'
mingw32-make[4]: Leaving directory `E:/qt_src/tools/assistant/tools/assistant'
mingw32-make[3]: Leaving directory `E:/qt_src/tools/assistant/tools'
mingw32-make[2]: Leaving directory `E:/qt_src/tools/assistant'
mingw32-make[1]: Leaving directory `E:/qt_src/tools'
Часть вывода не попала в файл, прикреплю аттачем. Уже на скрине увидел, что либы не хватает.
Собираю с
Угу, только это все равно не работает, если собирать через sh, а вот configure.exe нормально собирает. Платформа та же - Windows.
Гм, через какой? Там их 2.
Не надо было через .sh собирать?..
Qt прекрасно собирается migw-ой без MSYS. Среда ему НЕ нужна, он уже рассчитан на винды.
Вряд ли. Посмотрел документацию внимательнее. Где-то они пишут configure.exe, где-то без расширения. Фиг поймешь.
Ты ведь,когда Paint или что-нибудь вызываешь через Пуск—Выполнить,не пишешь MSPaint.exe?;)
Командный интерпетатор. Переберет все из %PATHEXT%
А что, pbrush уже не работает?
Если без шуток, я довольно часто пишу в командной строке services.msc, потому что набрать это на клаве намного быстрее, чем в дебрях меню найти панель управления, зайти в администрирование и выбрать "Службы".
Ух ты,работает:)
Вполне возможно,что быстрее описанного тобой,но можно ПКМнуть «Мой компьютер»→Управление;)(неважно,в «Пуске» или на рабочке)