Название: [Решено]Проблема в чужом коде Отправлено: Vitto74 от Август 26, 2010, 09:22 Доброго времени суток.
Я решил создать маленькое ответвление от проекта EiskaltDC++. В нем будут только небольшие изменения интерфейса. Но параллельно хочется разобраться как в нем все устроено. При переносе проекта в QtCreator я добавил несколько директив препроцессора для облегчения кроссразработки (UPnP нет в Linux, а DBus нет в винде) да и некоторые необходимые записи в pro-файле отсутствовали (модуль QtNetwork не объявлен). Но кроме прочих проблем вылезла ошибка и самом ядре DC++. Ядро я менять не хочу т.к. планирую брать его без изменений из проекта EiskaltDC++ (они его совсем немного подпиливают). Ошибка такая Код: dcpp/Streams.h:140: error: there are no arguments to ‘_’ that depend on a template parameter, so a declaration of ‘_’ must be available Код: virtual size_t write(const void* buf, size_t len) throw(Exception) { Помогите решить проблему или подскажите где я могу найти её решение. Название: Re: Проблема в чужом коде Отправлено: merke от Август 26, 2010, 09:25 убери знак _
Название: Re: Проблема в чужом коде Отправлено: merke от Август 26, 2010, 09:31 если не поможет вообще закоменти эту строчку)))
Название: Re: Проблема в чужом коде Отправлено: Admin от Август 26, 2010, 09:41 что то мне это gettext напомнило
именно они любят _("string") писать - почитай в эту сторону Название: Re: Проблема в чужом коде Отправлено: Sancho_s_rancho от Август 26, 2010, 09:42 Это значит #define _(x) gettext (x)
В Qt ближе всего соответсвует tr() Название: Re: Проблема в чужом коде Отправлено: BRE от Август 26, 2010, 10:44 (UPnP нет в Linux, а DBus нет в винде) Как понять UPnP нет в linux?Да и DBus есть в венде. Соберай-запускай-пользуйся. :) Название: Re: Проблема в чужом коде Отправлено: Vitto74 от Август 26, 2010, 10:58 Удалил знак '_' и при компиляции ругается на функции str и F_
Их там много (22) и все они (которые я видел) используются при отправке строк в логи. Может их заменить при помощи препроцессора? PS погуглил на счет UPnP и DBus - извиняюсь, сам дурак. Название: Re: Проблема в чужом коде Отправлено: Sancho_s_rancho от Август 26, 2010, 11:43 Удалил знак '_' и при компиляции ругается на функции str и F_ Можно и gettext подключить. Их там много (22) и все они (которые я видел) используются при отправке строк в логи. Может их заменить при помощи препроцессора? PS погуглил на счет UPnP и DBus - извиняюсь, сам дурак. http://www.opennet.ru/docs/RUS/gtk-reference/gtk-question-index.html (http://www.opennet.ru/docs/RUS/gtk-reference/gtk-question-index.html) Название: Re: Проблема в чужом коде Отправлено: pavelvat от Август 26, 2010, 22:53 Доброго времени суток. Я решил создать маленькое ответвление от проекта EiskaltDC++. В нем будут только небольшие изменения интерфейса. Но параллельно хочется разобраться как в нем все устроено. При переносе проекта в QtCreator я добавил несколько директив препроцессора для облегчения кроссразработки (UPnP нет в Linux, а DBus нет в винде) да и некоторые необходимые записи в pro-файле отсутствовали (модуль QtNetwork не объявлен). Какие именно небольшие изменения интерфейса планируются? Если это что-то вроде добавления кнопок в стиле "блокнот", "сейчас играет", то для этого создатели предусмотрели возможность писать расширения на QtScript, подробнее на официальном сайте на вкладе "wiki". Сборка выполняется cmake, а не qmake. На официальном форуме Qt говорилось, что систему сборки qmake выпилят и перейдут на cmake, так что не стоит тратить время на её изучение, приступай сразу к cmake. Ты исходники из транка брал или старые из версии 2.0.3, просто в транке уже давно добавили флаги для cmake отключающие QtDBus который в Windows отсутствует, и возможность отключить UPnP, все эти флаги описаны в файле INSTALL. Буквально на днях в транке EiskaltDC++ заменили библиотеку libupnp которая не собиралась в mingw в Windows на библиотеку miniupnp, так что теперь UPnP поддерживается на всех платформах. По поводу сборки, в папке win32 лежит файл с инструкциями по сборке под Windows в mingw и соответствующие bat-файлы. Название: Re: Проблема в чужом коде Отправлено: Vitto74 от Август 26, 2010, 23:17 На pro я уже забил и копаюсь в cmake.
Сбору использую старую (2.0.3). Изменения - одна галочка на панели поиска, два окошка и один модуль + слегка переделанное окно с результатами поиска. Название: Re: Проблема в чужом коде Отправлено: pavelvat от Август 26, 2010, 23:27 сборка под windows появилась после 2.0.3
получить исходники можно так: установить если не установлен Slik-Subversion затем выполнить в командной строке: svn checkout http://eiskaltdc.googlecode.com/svn/branches/trunk/ eiskaltdc-read-only Зачем делать форк проекта, ты можешь просто присылать свои патчи. Если возникнут какие-то вопросы можно связаться с разработчиками в jabber конференции eiskaltdc@conference.gentoo.ru Название: Re: Проблема в чужом коде Отправлено: Vitto74 от Август 27, 2010, 18:04 На сколько я понял то, что в trunk еще не стабильно. Собственно по этому пилю 2.0.3. Одна из целей максимальное упрощения переноса изменений в новые версии.
Название: Re: Проблема в чужом коде Отправлено: pavelvat от Август 27, 2010, 23:55 Чтобы клиент собирался под Windows пришлось сделать несколько изменений в коде, а чтобы то что собралось правильно работало в Windows были сделаны ещё изменения. А ты используешь старые исходники от версии 2.0.3, в которых все эти изменения отсутствуют, соответственно клиент просто не соберётся под Windows.
Название: Re: Проблема в чужом коде Отправлено: Vitto74 от Август 29, 2010, 12:31 Ясно. Тогда придется еще подождать, пока допилят версию, собирающуюся под все ОС
Название: Re: Проблема в чужом коде Отправлено: pavelvat от Август 29, 2010, 17:28 А зачем ждать то? - как получить исходники из разрабатываемой версии я объяснил выше. Вообще, в клиент вносятся изменения, по прошествии определённого интервала времени выпускается релиз, понятие стабильный или нестабильный - весьма условно. Следующий релиз будет ориентировочно в начале октября. И повторюсь, какой смысл делать форк когда можно просто прислать патчи в оригинальный проект? - если авторы сочтут твои изменения нужными и полезными их включат в оригинал.
Название: Re: Проблема в чужом коде Отправлено: Vitto74 от Август 30, 2010, 05:36 Я не собираюсь делать полноценный форк. Разработчики эти патчи не примут и правильно сделают. Мне эти возможности нужны только для маленького хаба на 150 юзеров.
Если вкратце - хочу соединить удобство поиска по торрентам (раздачи с описанием) с p2p на которую сложно наехать правоохранительным органам (хаб хранит только адреса юзеров - модерация невозможна). Пока что мои патчи будут гвоздями прибиты к qt, но позже собираюсь этот недостаток исправить - времени в обрез. Сейчас буду пилить то, что станет 2.1.0. Название: Re: Проблема в чужом коде Отправлено: Vitto74 от Август 30, 2010, 06:25 Хотя некоторые патчи всетаки пришлю - пара мест в интерфейсе я бы сделал чуть по другому.
Например, при использовании боковой панели вместо табов, при двойном щелчке по поиску должен открываться новый поиск, а сейчас этот элемент ни на что не реагирует. И еще вопрос - патчи ни для одного проекта я никогда не присылал. Где можно почитать о том как их делать правильно? Название: Re: Проблема в чужом коде Отправлено: pavelvat от Август 30, 2010, 09:24 Боковая панель служит для навигации по открытым табам, чтобы открыть таб с поиском надо использовать кнопку на панели инструментов или пункт меню.
По-поводу патчей ищи по ключевым словам diff и patch. Название: Re: Проблема в чужом коде Отправлено: Vitto74 от Август 30, 2010, 09:57 Но дважды кликнуть по пункту "Поиск" было бы более интуитивно.
|