понедельник, 29 ноября 2010 г.

Qt-эпос ч.4 (финал)

В предыдущих сериях: пытаемся собрать проект при помощи Qt так, чтобы он запускался без дополнительных библиотек.
Как вы уже понимаете, у меня все получилось, а вот вам пример: Qt-static-test.zip
Просто окно с пустой панелькой. EXE-шник сжат UPX-ом и должен запускаться у всех.

пятница, 26 ноября 2010 г.

Qt-эпос ч.3.1

Краткое содержание предыдущих серий: пытаемся поставить Qt Creator (и всю начинку), а рядышком поставить Qt и пересобрать его в static.

Успешно собрался отдельный статический Qt для компиляции статических проектов. Так же легко оказалось добавить его в профили компиляции в Qt Creator. Кстати, MinGW  отдельно ставить не надо, Qt успешно использует существующий (путь спросит при установке).

Не удивительно, что простейший EXEшник весит около 8 метров. Там же все графические библиотеки и прочее. По сравнению с тем же .NET это очень мало.

Есть куча способов "обезжирить" проект на Qt и этим, возможно нужно будет заняться.

UPD.: Тот же UPX сжимает файл вдвое на минимальном уровне компрессии. Уже неплохо.

UPD.2: Продолжение...

четверг, 25 ноября 2010 г.

Qt-эпос ч.3

Краткое содержание предыдущих серий: успешно скомпилили Qt в static и теперь пытаемся скомпилить в Qt проект в static.

При попытке скомпилить в новом Qt проект, оно ругается:

/mingw32/bin/ld.exe: cannot find -lQtGuid
Выяснилось, что если qt собран с опцией release, то и проект надо собирать только в release.

В таком случае проект собирается нормально, но при этом при запуске требует libgcc_s_dw2-1.dll
Решение этой проблемы нашлось там же, где и предыдущей:
QMAKE_LFLAGS *= -static-libgcc
Эту опцию можно добавить в файл проекта или в mkspecs/win32-g++/qmake.conf, если вы не хотите добавлять ее в каждый проект.

То-есть пока это почти win, но не совсем, так как исчез режим отладки.

Теперь задача-минимум поставить чистый Qt Creator для девелопмента, отдельно поставить Qt и собрать его в static, а в creator добавить профиль сборки в static, чтобы при необходимости можно было собирать такие проекты.

UPD.: Продолжение...

Qt-эпос ч.2

Краткое содержание предыдущих серий: пытаюсь собрать qt, чтобы тот собирал мне проект в static.

Попытка обойтись без извращений со static и подложить скомпилированному экзешнику требуемую mingwm10.dll привела к тому, что экзешник возжелал стать владычицей морскою и затребовал еще ворох библиотек. Причем на очередной из них, эта переборчивая скотина начала плеваться на точку входа и отказываться сотрудничать.

Пришлось тяжело вздохнуть, закатать рукава, натереть глаза луком и продолжить негуманные опыты со сборкой.

Сначала я всё удалил, потом это же всё поставил заново. Вторая попытка увенчалась успехом, несмотря на то, что исходные данные были почти такие же, как и в первый раз. Кроме того, что я добавил в path путь к cygwin (он у меня всегда стоит на всякий случай) и добавил путь к папке %path_qt%/bin

Несмотря на то, что отконфигурилось и собралось оно вполне успешно, работать оно от этого не начало.

Вот, сейчас тупо собираю еще раз с теми же условиями. Исходя из принципа "может, со второго раза дойдет". Если не поможет, попробую качать и ставить Qt Creator кусками. Отдельно creator, отдельно qt, отдельно мухи с котлетами.

UPD.: Продолжение...

среда, 24 ноября 2010 г.

Тупик аутсорсинга

Интересная статья опубликована на любимом developers.org.ua под назавнием "Тупик аутсорсинга". В целом, возможно кэп и прав, но с другой стороны... Выводы спорные, настроения упаднические, а количество статей у автора - одна. Ох, что-то тут не так.

вторник, 23 ноября 2010 г.

Qt-эпос

Мои мучения с Visual Studio 2003/2008 привели меня к Qt Creator. Наверное, я еще недостаточно профессионал.

0. Скачать

Скачать эту IDE (и всякую начинку в комплекте) можно на официальном сайте: http://qt.nokia.com/

1. Установить

Ставится оно в один присест, запускается с полпинка и сразу работает и даже компилирует программу с пустым окошком (ну или с кнопочками). Вообщем работает.

2. Использовать

Первая фигня, с которой я столкнулся это сломал полмозга пытаясь добавить кнопочку на панель кнопок (QToolBar). Справка упорно твердила мне, что надо "Tools - ActionEditor". В меню "Инструменты" ничего даже близко похожего не находилось.
Через усиленное битье головой об монитор я его нашел, а сейчас покажу вам:
Дальше дело пошло на лад...

3. Static или mingwm10.dll

После того, как кнопочка была успешно "заборена", мне показалось, что было бы хорошо, если бы скомпилированный exe-файл перестал бы, наконец, требовать mingwm10.dll для запуска.
Это оказалось просто, но были и подводные камни.
Хороший ман о том, как это можно сделать лежит тут: http://www.qtcentre.org/wiki/index.php?title=Building_static_Qt_on_Windows
Но в мане почему-то не сказано, что для того, чтобы утилита configure перестала ругаться:
execute: File or path is not found (mingw32-make)
Cleaning qmake failed, return code -1
Необходимо:
  1. прописать в переменную path путь: %path_qt%\qt\bin\
  2. прописать в path путь: %path_qt%\mingw\bin
где %path_qt% - папка, куда вы поставили Qt

Ну, и к тому же перед сборкой оно пишет, что:
WARNING: Using static linking will disable the use of plugins.
         Make sure you compile ALL needed modules into the library.
Еще не знаю что за плагины оно мне отключило, потому не слишком беспокоюсь.
Собирается оно приличное время, и зачем-то цепляет мои папки "Program Files\Visual Studio". Вот, все еще собирается, посмотрим чем это закончится...

UPD.: Продолжение...

четверг, 18 ноября 2010 г.

О совместимости 1С

Фирма 1С напоминает об условиях совместимости своих продуктов:

В связи с поступающими вопросами об использовании программных продуктов системы "1С:Предприятие 7.7" с новыми версиями операционной системы Microsoft Windows и системы управления базами данных Microsoft SQL Server фирма "1С" считает важным довести до пользователей и партнеров следующую информацию.

Программные продукты системы "1С:Предприятие 7.7" разрабатывались в период с 1999 по 2003 год. Они предназначены для использования со следующими операционными системами:
  • Microsoft Windows 95,
  • Microsoft Windows 98,
  • Microsoft Windows NT 4.0,
  • Microsoft Windows 2000,
  • Microsoft Windows XP,
  • Microsoft Windows Server 2003.
Продукты "1С:Предприятие 7.7 для SQL" поддерживают работу со следующими версиями СУБД Microsoft SQL Server:
  • Microsoft SQL Server 6.5,
  • Microsoft SQL Server 7.0,
  • Microsoft SQL Server 2000.

вторник, 16 ноября 2010 г.

Профессионалы или будни сапорта

Утром с одного из наших филиалов поступил звонок.
- Горячая линия! - привычно отозвался я.
- Мы тут делаем первичную выгрузку через УРБД, скажите, какое должно быть имя файла? - вопрошает меня немолодой женский голос.
- Вы читали страницу посвященную УРБД в нашей базе знаний? - задаю вполне резонный вопрос.
- Нет, я профессионал! - возмущенно. - Я это читать не буду!

Далее следует несколько вопросов (из тех, что описаны на странице в базе знаний) и вежливые ответы с легким сожалением в голосе о том, что что профессионалы не читают документаций.

Вечер, телефон красный, я - само спокойствие. Достойный потомок BOTH.

- Горячая линия.
- Я тут не поняла почему у меня в номере файла один ноль? Должно же быть три? Или не должно? - вопрошает все тот же профессионал.
- У нас принято ставить автонумерацию файлов выгрузки, а вы не поставили. - тяжело вздыхаю в трубку. - Об этом тоже сказано в базе знаний.
- Я так и поняла, что вам ответить тяжело было! - с чувством гордости за свою понятливость отвечает профессионал и кладет трубку.

Профессионалы - они такие профессионалы.

А вам такие встречались?

понедельник, 8 ноября 2010 г.

Пол Локхард. Плач математика

Музыкант просыпается от кошмарного сна. Во сне он видел, будто музыкальное образование стало обязательным. «Мы помогаем ученикам вступить в этот заполненный звуками мир», — преподаватели, школьная система и государство принялись за этот жизненно важный проект. Проводятся исследования, образуются комиссии, принимаются решения… И все это без единого совета музыканта или композитора!

Дальше тут: http://nbspace.ru/math/

О математике, о преподавании и о том, почему люди становятся математиками вопреки школьному образованию.

Universe fairless

Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

(c)ibor

понедельник, 1 ноября 2010 г.

Ричард Фейнман

Одна из самых замечательных книг, которые я прочел за последнее время это книга "Вы, конечно, шутите, мистер Фейнман!"
А, вот, сегодня узнал, что есть видеозаписи с Ричардом Фейнманом.