1

Тема: Испытываю трудности со сборкой под MacOS

День добрый. Бьюсь уже достаточно долго со сборкой под макось, сейчас была очередная попытка собрать mytetra v1.44.31. (Да, я очень хочу иметь последнюю версию)

Сначала пробовал собирать с Qt 5.13 через QT Creator 4.9.1(правда написано что "основан на Qt 5.12.3", ? ).

При открытии файла проекта 'mytetra.pro' ошибок не выдает, но после сообщения:

"Project MESSAGE: touch mimeTeX qmake"

Следует:

"Индексатор С++: пропускается файл '...thirdParty/mimetex/texfonts.h' так как слишком большой"

Затем, когда жму "собрать проект mytetra", идет поток из 147 ошибок и предупреждений.
Все проблемы в файле mimetex.с и одна проблема в string.h, говорит мне креатор.

Вот так выглядит начало и конец консоли сборки через QT Creator 4.9.1:

12:28:05: Выполняются этапы для проекта mytetra...
12:28:05: Настройки не изменились, этап qmake пропускается.
12:28:05: Запускается: «/usr/bin/make» -j8
cd thirdParty/mimetex/ && ( test -e Makefile || /Users/yaroslav/Qt5.13.0/5.13.0/clang_64/bin/qmake -o Makefile /Users/yaroslav/Downloads/mytetra_building/mytetra_1_44_31_src/thirdParty/mimetex/mimetex.pro -spec macx-clang CONFIG+=debug CONFIG+=x86_64 CONFIG+=qml_debug ) && /Applications/Xcode.app/Contents/Developer/usr/bin/make -f Makefile 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -c -pipe -DAA -g  -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.12 -Wall -W -fPIC -DQT_QML_DEBUG -DQT_CORE_LIB -I../../../../mytetra_building/mytetra_1_44_31_src/thirdParty/mimetex -I. -I/Users/yaroslav/Qt5.13.0/5.13.0/clang_64/lib/QtCore.framework/Headers -I. -I/Users/yaroslav/Qt5.13.0/5.13.0/clang_64/mkspecs/macx-clang -F/Users/yaroslav/Qt5.13.0/5.13.0/clang_64/lib -o ../../../../mytetra_building/mytetra_1_44_31_src/thirdParty/mimetex/build/obj/mimetex.o ../../../../mytetra_building/mytetra_1_44_31_src/thirdParty/mimetex/mimetex.c
In file included from ../../../../mytetra_building/mytetra_1_44_31_src/thirdParty/mimetex/mimetex.c:434:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/string.h:160:7: error: conflicting types for 'strcasestr'
char    *strcasestr(const char *__big, const char *__little);
         ^
../../../../mytetra_building/mytetra_1_44_31_src/thirdParty/mimetex/mimetex.c:428:13: note: previous declaration is here
const char *strcasestr(const char *s1, const char *s2);
            ^
../../../../mytetra_building/mytetra_1_44_31_src/thirdParty/mimetex/mimetex.c:4013:52: warning: comparison of integers of different signs: 'unsigned long' and 'int' [-Wsign-compare]
  if ( strlen(outline)+strlen(outfield)+strlen(cr) >= maxlinelen /*won't fit*/
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~
... ... ... 
... ... ...
../../../../mytetra_building/mytetra_1_44_31_src/thirdParty/mimetex/mimetex.c:17874:1: warning: comparison of integers of different signs: 'size_t' (aka 'unsigned long') and 'int' [-Wsign-compare]
<    nbytes )                           /* failed to write all bytes */
^    ~~~~~~
140 warnings and 1 error generated.
make[1]: *** [../../../../mytetra_building/mytetra_1_44_31_src/thirdParty/mimetex/build/obj/mimetex.o] Error 1
make: *** [sub-thirdParty-mimetex-mimetex-pro-make_first] Error 2
12:28:05: Процесс «/usr/bin/make» завершился с кодом 2.
Ошибка при сборке/установке проекта mytetra (комплект: Desktop Qt 5.13.0 clang 64bit)
Во время выполнения этапа «Сборка»

Значит скачал я старую версию Qt 5.10.1 и креатор к нему v4.5.1, поставил, открываю mytetra.pro – сразу обозначаются две проблемы:

предупреждение: «/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang» используется qmake, но «/Users/yaroslav/Qt5.13.0/Qt Creator.app/Contents/Resources/clang/bin/clang» задан в комплекте.
Обновите комплект или выберите подходящей для вашей целевой платформы mkspec для qmake.
предупреждение: «/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++» используется qmake, но «/Users/yaroslav/Qt5.13.0/Qt Creator.app/Contents/Resources/clang/bin/clang» задан в комплекте.
Обновите комплект или выберите подходящей для вашей целевой платформы mkspec для qmake.

Тут мне становится понятно, что какая-то проблема с компилятором присутствует, тем не менее жму "собрать". Потому что совершенно не представляю как эту проблему решать.
Кстати, в сообщениях этой версии креатора так же выводится, что индексатор С++ пропускает mimetex.h так как слишком большой.

Вот так выглядит начало и конец консоли сборки через QT Creator 4.5.1:

12:09:22: Выполняются этапы для проекта mytetra...
12:09:22: Настройки не изменились, этап qmake пропускается.
12:09:22: Запускается: «/usr/bin/make» 
cd thirdParty/mimetex/ && ( test -e Makefile || /Users/yaroslav/Qt5.10.1/5.10.1/clang_64/bin/qmake -o Makefile /Users/yaroslav/Downloads/mytetra_building/mytetra_1_44_31_src/thirdParty/mimetex/mimetex.pro -spec macx-clang CONFIG+=debug CONFIG+=x86_64 CONFIG+=qml_debug ) && /Applications/Xcode.app/Contents/Developer/usr/bin/make -f Makefile 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -c -pipe -DAA -g  -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.10 -Wall -W -fPIC -DQT_QML_DEBUG -DQT_CORE_LIB -I../../../mytetra_1_44_31_src/thirdParty/mimetex -I. -I/Users/yaroslav/Qt5.10.1/5.10.1/clang_64/lib/QtCore.framework/Headers -I. -I/Users/yaroslav/Qt5.10.1/5.10.1/clang_64/mkspecs/macx-clang -F/Users/yaroslav/Qt5.10.1/5.10.1/clang_64/lib -o ../../../mytetra_1_44_31_src/thirdParty/mimetex/build/obj/mimetex.o ../../../mytetra_1_44_31_src/thirdParty/mimetex/mimetex.c
In file included from ../../../mytetra_1_44_31_src/thirdParty/mimetex/mimetex.c:434:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/string.h:160:7:
 error: conflicting types for 'strcasestr'
char    *strcasestr(const char *__big, const char *__little);
         ^
../../../mytetra_1_44_31_src/thirdParty/mimetex/mimetex.c:428:13: note: previous declaration is here
const char *strcasestr(const char *s1, const char *s2);
            ^
../../../mytetra_1_44_31_src/thirdParty/mimetex/mimetex.c:4013:52: warning: comparison of integers of different signs: 'unsigned long' and 'int' [-Wsign-compare]
  if ( strlen(outline)+strlen(outfield)+strlen(cr) >= maxlinelen /*won't fit*/
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~
../../../mytetra_1_44_31_src/thirdParty/mimetex/mimetex.c:6492:4: warning: comparison of integers of different signs: 'unsigned long' and 'int' [-Wsign-compare]
         {strsqueeze(argsigptr,strlen(argsignal));} /* can't be in argval */
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
... ... ...
... ... ...
../../../mytetra_1_44_31_src/thirdParty/mimetex/mimetex.c:17183:28: warning: comparison of integers of different signs: 'unsigned long' and 'int' [-Wsign-compare]
   if ( strlen(expression) > norefmaxlen ) { /* query_string too long */
        ~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~
../../../mytetra_1_44_31_src/thirdParty/mimetex/mimetex.c:17270:23: warning: comparison of integers of different signs: 'unsigned long' and 'int' [-Wsign-compare]
                  if ( strlen(refp) <= loglen ) break;  /* no more parts */
                       ~~~~~~~~~~~~ ^  ~~~~~~
../../../mytetra_1_44_31_src/thirdParty/mimetex/mimetex.c:17874:1: warning: comparison of integers of different signs: 'size_t' (aka 'unsigned long') and 'int' [-Wsign-compare]
<    nbytes )                           /* failed to write all bytes */
^    ~~~~~~
140 warnings and 1 error generated.
make[1]: *** [../../../mytetra_1_44_31_src/thirdParty/mimetex/build/obj/mimetex.o] Error 1
make: *** [sub-thirdParty-mimetex-mimetex-pro-make_first] Error 2
12:09:23: Процесс «/usr/bin/make» завершился с кодом 2.
Ошибка при сборке/установке проекта mytetra (комплект: Desktop Qt 5.10.1 clang 64bit)
Во время выполнения этапа «Сборка»

Помогите, пожалуйста!

P.S: Была тут на форуме инициатива по упаковке матетры в инсталяционный пакет для маков, но как-то не получилось у человека. Может кто осилил?

2

Re: Испытываю трудности со сборкой под MacOS

попробуй без mimetex собрать:

~$ cat mytetra_dev/mytetra.pro
TEMPLATE = subdirs

# For desktop
!android {
SUBDIRS = app

app.file = app/app.pro
}

# For Android
android {
SUBDIRS = app

app.file = app/app.pro
}

3

Re: Испытываю трудности со сборкой под MacOS

yaroslav пишет:

День добрый. Бьюсь уже достаточно долго со сборкой под макось

Вам нужен Qt версий 5.10-5.11, на других версиях сборка не проверялась.

Кроме того, я использую компилятор gcc, а вы, похоже, clang. На clang я сборку никогда не проверял, но многие мне говорили, что приходится шаманить. Если есть возможность собиратьпод MacOs через gcc, попробуйте через него, все должно получиться.

4

Re: Испытываю трудности со сборкой под MacOS

Приветствую всех любителей MyTetra!
Кто бы мог подумать, но и меня постигла та же участь. Многие годы я пользовался этой чудесной программой, но 5 дней назад я попал в Mac коллектив, получил в зубы Mac Book и лишился основного рабочего инструмента.
Только что я смог собрать рабочую MyTetra последней версии и делюсь своим мини howto:

Подсказка нашлась здесь:
https://medium.com/@delyee/mytetra-%D0% … 3441767ce3

Алгоритм действий следующий:
Под административным пользователем
ставим Command Line Tools
http://osxdaily.com/2014/02/12/install- … -mac-os-x/
xcode-select --install

ставим homebrew
http://osxdaily.com/2018/03/07/how-inst … ew-mac-os/
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
нужно будет овладеть некоторыми каталогами, установщик подскажет

через homebrew ставим qt
brew install qt
в подсказке есть еще brew link qt, но скорее всего это не нужно, нужно добавить путь до бинарников в переменную PATH

Под обычным пользователем
Прописываем путь до бинарников qt в переменную PATH
echo 'export PATH="/usr/local/opt/qt/bin:$PATH"' >> ~/.bash_profile

Клонируем репозиторий, переходим в папку с исходниками, переключаемся на ветку master
git clone https://github.com/xintrea/mytetra_dev.git
cd mytetra_dev
git checkout master

Собитраем MyTetra
qmake .
make

Когда безобразие на экране заканчивается, готовая программа лежит в каталоге bin

5

Re: Испытываю трудности со сборкой под MacOS

Всем доброго вечера, благодарю всех за отклики.

Успешно смог собрать последнюю версию из мастер-ветки с гитхаба, по инструкции из ссылки от jeengreen.

Так как ось свою не обновлял довольно давно (сижу на MacOS Sierra v 10.12.6), то ли по какой-то другой причине, все-таки потребовалась линковка (brew link qt).

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

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

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

6

Re: Испытываю трудности со сборкой под MacOS

Если кому-то нужно, то вот что у меня получилось после сборки из ветки master (по состоянию на 3 декабря 2019) по инструкции от jeengreen. Собирал на MacOS Catalina 10.15.1 (19B88). Подтверждаю проблему с отсутствующей иконкой приложения. И да, собранная MyTetra идентифицирует себя как v.1.43.27, хотя на сайте уже выложены сборки для Linux v.1.44.31.

Ссылка: https://yadi.sk/d/2JL_xx-zdo4lmQ