New user registration is currently disabled due to spam abuse / Регистрация новых пользователей в настоящее время приостановлена из-за злоупотреблений спаммерами

Сборка под Mac OS

Обо всём по программе

Re: Сборка под Mac OS

Postby cka3o4h1k » Sun May 09, 2010 8:55 pm

gromescu до выхода первой версии собирать ничего не будет и пока никто не интересуется тут кроме меня, видимо никак :\
Спасибо ikm
cka3o4h1k
 
Posts: 24
Joined: Sat Jan 09, 2010 11:24 am

Re: Сборка под Mac OS

Postby cka3o4h1k » Wed Oct 13, 2010 9:16 am

На руборде собрали
http://www.depositfiles.com/ru/files/394gfwbn7
cka3o4h1k
 
Posts: 24
Joined: Sat Jan 09, 2010 11:24 am

Re: Сборка под Mac OS

Postby fasness » Wed Dec 29, 2010 3:51 pm

thanks for porting this excellent software to Mac. I have been using goldendict for a while on Ubuntu and winXP. Now I just get a new macbook, and want to keep using the same software on MAC os. have installed this dmg,

How can goldendict scan words by double-click?
fasness
 
Posts: 3
Joined: Sat Jan 23, 2010 6:07 pm

Re: Сборка под Mac OS

Postby strannik » Sun Jan 16, 2011 6:53 am

Пытаюсь собрать сам, при линковке вылезают следующие ошибки:
Code: Select all
Undefined symbols:
  "Hunspell::Hunspell(char const*, char const*, char const*)", referenced from:
      HunspellMorpho::makeDictionaries(Config::Hunspell const&)   in hunspell.o
  "_ov_info", referenced from:
      Lsa::(anonymous namespace)::LsaDictionary::getResource(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in lsa.o
  "_ov_read", referenced from:
      Lsa::(anonymous namespace)::LsaDictionary::getResource(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in lsa.o
  "Hunspell::analyze(char***, char const*)", referenced from:
      HunspellMorpho::(anonymous namespace)::HunspellHeadwordsRequest::suggest(std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >&)in hunspell.o
  "QX11Info::display()", referenced from:
      KeyboardState::checkModifiersPressed(int)    in keyboardstate.o
  "Hunspell::suggest(char***, char const*)", referenced from:
      HunspellMorpho::(anonymous namespace)::HunspellArticleRequestRunnable::run()in hunspell.o
  "_ov_open_callbacks", referenced from:
      Lsa::(anonymous namespace)::LsaDictionary::getResource(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in lsa.o
  "Hunspell::spell(char const*, int*, char**)", referenced from:
      HunspellMorpho::(anonymous namespace)::HunspellPrefixMatchRequestRunnable::run()in hunspell.o
      HunspellMorpho::(anonymous namespace)::HunspellArticleRequestRunnable::run()in hunspell.o
  "_ov_pcm_seek", referenced from:
      Lsa::(anonymous namespace)::LsaDictionary::getResource(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in lsa.o
  "Hunspell::~Hunspell()", referenced from:
      HunspellMorpho::(anonymous namespace)::HunspellDictionary::~HunspellDictionary()in hunspell.o
      HunspellMorpho::(anonymous namespace)::HunspellDictionary::~HunspellDictionary()in hunspell.o
  "Hunspell::free_list(char***, int)", referenced from:
      HunspellMorpho::(anonymous namespace)::HunspellHeadwordsRequest::suggest(std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >&)in hunspell.o
      HunspellMorpho::(anonymous namespace)::HunspellArticleRequestRunnable::run()in hunspell.o
      HunspellMorpho::(anonymous namespace)::HunspellArticleRequestRunnable::run()in hunspell.o
  "Hunspell::get_dic_encoding()", referenced from:
      HunspellMorpho::(anonymous namespace)::decodeFromHunspell(Hunspell&, char const*)in hunspell.o
      HunspellMorpho::(anonymous namespace)::encodeToHunspell(Hunspell&, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&)in hunspell.o
  "_ov_clear", referenced from:
      Lsa::(anonymous namespace)::LsaDictionary::getResource(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in lsa.o
      Lsa::(anonymous namespace)::LsaDictionary::getResource(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in lsa.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [goldendict.app/Contents/MacOS/goldendict] Error 1

Hunspell ставил через MacPorts (для которых "корневым каталогом" является /opt/local); перед этим в ld выдавалась похожая ошибка с iconv, но я решил ее, добавив
Code: Select all
LIBS += -L/opt/local/lib/

в часть "unix{...}" в файле goldendict.pro.
Соответственно, раз линковщик теперь находит /opt/local/lib/libiconv.* , то должен видеть и /opt/local/lib/libhunspell.*

Помогите разобраться с ошибкой.
Спасибо большое ikm за прекрасную программу, а также dark_elf и другим за сборки под мак.

P.S. До этого были ошибки с iconv и проч. на стадии компиляции, но они решились через
Code: Select all
INCLUDEPATH += /opt/local/include

в goldendict.pro и замену #ifdef-ов в ряде мест, а также редактирование файлов hotkeywrapper.* по совету ikm в этом треде.
strannik
 
Posts: 74
Joined: Mon Oct 19, 2009 12:05 pm

Re: Сборка под Mac OS

Postby strannik » Sun Jan 16, 2011 8:53 am

Ура! Решил проблему, оказалось линковщику недоставало символов (как и ясно из сообщений об ошибках). В случае с iconv я добавил в LIBS еще и -liconv (наряду с -L/opt/local/lib/), что говорило линковщику, что символы нужно искать в файле /opt/local/lib/libiconv.dylib. По аналогии, добавил
Code: Select all
LIBS += -lhunspell-1.2 \
           -lvorbisfile

(vorbisfile требовалось для lsa.o, судя по контексту), и все слинковалось (на самом деле, пришлось после этих шагов еще задать #ifdef для keyboardstate.cc, в свете известных для мака проблем).

Еще раз спасибо ikm и остальным, похоже сборка под Mac не так уж и сложна. Готов стать бета-тестером ;)
strannik
 
Posts: 74
Joined: Mon Oct 19, 2009 12:05 pm

Re: Сборка под Mac OS

Postby cka3o4h1k » Sun Jan 16, 2011 9:52 am

strannik

А Вы можете сборки выкладывать в эту тему?
Спасибо
cka3o4h1k
 
Posts: 24
Joined: Sat Jan 09, 2010 11:24 am

Re: Сборка под Mac OS

Postby strannik » Sun Jan 16, 2011 11:40 am

cka3o4h1k wrote:strannik
А Вы можете сборки выкладывать в эту тему?
Спасибо

На здоровье: Goldendict 1.0.1+git (Jan 16, 2011) for Mac OS X (tested on 10.6) + Qt 4.7 :) Edit: это сборка без библиотек, см. обновленную ниже.
Единственное, у меня пока не заработал звук (возможно, проблема в словарях). Буду разбираться.
Кроме того, если запускать программу кликом по иконке или при старте системы, то символы отображаются в неверной кодировке. Это легко лечится, если в терминале выполнить
Code: Select all
mkdir ~/.MacOSX
echo '{LANG = "en_US.UTF-8";}' > ~/.MacOSX/environment.plist

Однако, это может потенциально повлиять на работу других программ. Грамотным путем было бы задавать переменную окружения LANG только для Goldendict, что согласно документации Apple делается через файл Info.plist. Но к сожалению, так сделать не получается (в архиве, который я выложил, уже внесены необходимые изменения в Info.plist, но программа их игнорирует; похоже на баг Mac OS). Поэтому пока что советую сделать, как написано выше.
Last edited by strannik on Mon Jan 17, 2011 12:11 am, edited 1 time in total.
strannik
 
Posts: 74
Joined: Mon Oct 19, 2009 12:05 pm

Re: Сборка под Mac OS

Postby cka3o4h1k » Sun Jan 16, 2011 12:09 pm

Здорово! Спасибо!
Учасник форума gromescu говорил что с выходом первой версии он сделает сборку, возможно он сможет дать дельный совет по звуку и кодировке.
cka3o4h1k
 
Posts: 24
Joined: Sat Jan 09, 2010 11:24 am

Re: Сборка под Mac OS

Postby strannik » Sun Jan 16, 2011 10:06 pm

Решил проблему с кодировкой, добавив
Code: Select all
--- main.cc   2011-01-16 16:46:07.000000000 -0500
+++ main.cc   2011-01-16 16:45:38.000000000 -0500
@@ -21,6 +21,13 @@
 
 int main( int argc, char ** argv )
 {
+
+  #ifdef Q_OS_MAC
+
+    setenv("LANG", "en_US.UTF-8", 1); // This is required for proper handling
+                                      // of the UTF-8 encoding in Mac OS X
+  #endif
+
   // The following clause fixes a race in the MinGW runtime where throwing
   // exceptions for the first time in several threads simultaneously can cause
   // an abort(). This code throws first exception in a safe, single-threaded
Теперь никаких переменных окружения задавать искусственно не нужно.

По поводу звука - как и ожидал, проблема была в моих словарях (отсутствовали звуковые файлы как таковые).
Так что теперь никаких проблем, кроме "горячих клавиш", не осталось. Словари работают быстро, в правильной кодировке и не падают.

Кому нужно, вот обновленная сборка (без библиотек!): Goldendict 1.0.1+git (Jan 17, 2011) for Mac OS X (tested on 10.6) + Qt 4.7 (64-bit!)
Исходники со всеми "исправлениями": Goldendict src git (Jan 17, 2011) for Mac OS X (tested on 10.6) + Qt 4.7
Файл goldendict.pro в них заточен под Macports. Если используете другой менеджер пакетов GNU (например, Fink), пути вида /opt/local/xxx в goldendict.pro придется заменить на другие (/sw/xxx для Fink). Для сборки нужны X11 + Qt 4.7 + Xcode + pkgconfig + hunspell + libvorbis (qmake скажет вам, если нужно установить что-то еще).
Важно! Выложенный выше бинарник будет работать, только если у вас в системе установлены вышеперечисленные пакеты.
Иначе попробуйте использовать следующий dmg (в него уже вкомпилены все нужные библиотеки):
GoldenDict.dmg 1.0.1+git (Jan 17, 2011) for Mac OS X (tested on 10.6) - 64-bit
strannik
 
Posts: 74
Joined: Mon Oct 19, 2009 12:05 pm

Re: Сборка под Mac OS

Postby cka3o4h1k » Tue Jan 18, 2011 3:11 am

Подскажите, а где сабж ищет и хранит по умолчанию настройки и словари?

Быстрофикс, отвечаю сам: ~/.goldendict

Кстати на ру-борде выложили большой, уже настроеный пак словарей из лингвы, удобно
cka3o4h1k
 
Posts: 24
Joined: Sat Jan 09, 2010 11:24 am

PreviousNext

Return to Общий

Who is online

Users browsing this forum: No registered users and 18 guests

cron