Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ошибка при сборке под Windows #105

Open
UUSR opened this issue Jan 12, 2019 · 19 comments
Open

Ошибка при сборке под Windows #105

UUSR opened this issue Jan 12, 2019 · 19 comments

Comments

@UUSR
Copy link

UUSR commented Jan 12, 2019

При сборке под Windows 10 ветки experimental получаю ошибки:

mimetex.obj:-1: ошибка: LNK2019: ссылка на неразрешенный внешний символ strncasecmp в функции strwstr mimetex.obj:-1: ошибка: LNK2019: ссылка на неразрешенный внешний символ popen в функции rasterize mimetex.obj:-1: ошибка: LNK2019: ссылка на неразрешенный внешний символ pclose в функции rasterize ..\..\..\mytetra_dev-experimental\thirdParty\mimetex\build\bin\mimetex.exe:-1: ошибка: LNK1120: неразрешенных внешних элементов: 3

screenshot_1

под Linux всё собирается без проблем.

@xintrea
Copy link
Owner

xintrea commented Jan 13, 2019 via email

@DikBSD
Copy link
Contributor

DikBSD commented Jan 13, 2019 via email

@retmas
Copy link
Contributor

retmas commented Jan 13, 2019

UUSR, вероятно вы используете MSVC компилятор и компоненты для сборки. Попробуйте MinGW gcc. Либо придется править код, например, добавляя дефайны:
#define strncasecmp _strnicmp
и т.д
или заменяя сами функции

@DikBSD
Copy link
Contributor

DikBSD commented Jan 13, 2019 via email

@retmas
Copy link
Contributor

retmas commented Jan 13, 2019

DikBSD, это не совсем так. Устанавливая Qt Open Source редакции, можно выбрать какие prebuilt components выбирать: gcc или msvc. Для msvc есть варианты 32 и 64 битные (в зависимости от версии Qt - для разных версий msvc). До Qt 5.12 для gcc были только 32 бит в стандартной поставке (если самому не заморочиться собрать из исходников, либо использовать сторонние сборки (из репов msys2, например)). Начиная с Qt 5.12 для gcc есть 64 битная версия (MinGW-w64)

@DikBSD
Copy link
Contributor

DikBSD commented Jan 13, 2019 via email

@DikBSD
Copy link
Contributor

DikBSD commented Jan 13, 2019

Только что попробовал сборку ветки experimental на Win 10 64 bit, Qt 5,11,2 MinGW gcc 32 bit - все прекрасно собралось в QtCreator 4.8.0

@UUSR
Copy link
Author

UUSR commented Jan 13, 2019

@DikBSD Поставил MinGW, cобираю на:

Qt Creator 4.8.0
Основан на Qt 5.12.0 (MSVC 2015, 32 бита)
Компонент:
Desktop QT 5.12.0 MinGW-5.5 x64
Компилятор:
MinGW-5.5 x64
Отладчик:
GDB 7.10.1

Получил такие ошибки при сборке:

C:\SRC\mytetra_dev-experimental\mytetra_dev-experimental\app\src\libraries\wyedit\Editor.cpp:503: ошибка: 'qOverload' was not declared in this scope
connect(editorToolBarAssistant->fontSize, qOverload(&EditorFontSizeComboBox::currentIndexChanged),

C:\SRC\mytetra_dev-experimental\mytetra_dev-experimental\app\src\libraries\wyedit\Editor.cpp:503: ошибка: expected primary-expression before 'int'
connect(editorToolBarAssistant->fontSize, qOverload(&EditorFontSizeComboBox::currentIndexChanged),

C:\SRC\mytetra_dev-experimental\mytetra_dev-experimental\app\src\libraries\wyedit\Editor.cpp:-1: In member function 'void Editor::setTabSize()':

C:\SRC\mytetra_dev-experimental\mytetra_dev-experimental\app\src\libraries\wyedit\Editor.cpp:1464: ошибка: 'class EditorTextArea' has no member named 'setTabStopDistance'
textArea->setTabStopDistance(

screenshot_2

@DikBSD
Copy link
Contributor

DikBSD commented Jan 13, 2019

Мои компоненты отличаются от Ваших. Ваши - более новые. Как получится поставлю Qt, как у Вас, и попробую.

@UUSR
Copy link
Author

UUSR commented Jan 13, 2019

@DikBSD Короче собрался проект под MSVC компилятор без ошибок получил два файла: mytetra.exe и mimetex.exe. Не могу понять теперь где взять динамические библиотеки для работы программы:
Qt5Gui.dll , Qt5Widgets.dll , Qt5PrintSupport.dll. По идее они должны тоже быть после компиляции?

@DikBSD
Copy link
Contributor

DikBSD commented Jan 13, 2019

По аналогии с моими папками найдите у себя:

  1. библиотеки: d:\Qt\5.11.2\mingw53_32\bin
    Ниже приведенные папки надо положить рядом с собранными exe, удалив из них лишнее:
  2. d:\Qt\5.11.2\mingw53_32\plugins\platforms\
  3. d:\Qt\5.11.2\mingw53_32\plugins\imageformats\
  4. d:\Qt\5.11.2\mingw53_32\plugins\iconengines\
  5. d:\Qt\5.11.2\mingw53_32\plugins\printsupport\
  6. Файлы: libgcc_s_dw2-1.dll, libstdc++-6.dll, libwinpthread-1.dll - из папки d:\Qt\5.11.2\mingw53_32\bin
    Вроде все...

@UUSR
Copy link
Author

UUSR commented Jan 13, 2019

@DikBSD Всё запустилась только пропали значки из программы.
screenshot_3

@DikBSD
Copy link
Contributor

DikBSD commented Jan 13, 2019

Скорее всего у Вас нет в папке с программой Qt5Svg.dll - все иконки - svg.

@UUSR
Copy link
Author

UUSR commented Jan 13, 2019

@DikBSD Не смог найти у себя в C:\Qt\5.12.0\msvc2017_64\bin файлы libgcc_s_dw2-1.dll, libstdc++-6.dll, libwinpthread-1.dll и нет файла ssleay32.dll но значки появились после добавления Qt5Svg.dll
screenshot_3

@DikBSD
Copy link
Contributor

DikBSD commented Jan 13, 2019

ssleay32.dll и ssleay32.dll - в папке *d:\Qt\Tools\mingw530_32\opt\bin*

файлы libgcc_s_dw2-1.dll, libstdc++-6.dll, libwinpthread-1.dll - в d:\Qt\5.11.2*mingw53_32*\bin

у Вас в C:\Qt\5.12.0*msvc2017_64*\bin их может и не быть.

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

У меня сборка на MinGW, я Вас автоматически и написал про эти библиотеки...

@UUSR
Copy link
Author

UUSR commented Jan 13, 2019

@DikBSD Спасибо за помощь ,сборка на MSVC сильно отличается от сборки на MinGW ,получилась такая структура файлов:
screenshot_4
Вроде всё работает ,даже подключил синхронизацию с Gitlab ,буду тестировать новые кнопочки в программе...
Жалко ,что под андроид не собирается ,хотел поставить на планшет.

@DikBSD
Copy link
Contributor

DikBSD commented Jan 13, 2019

Кнопки для работы с цветом шрифта и заливки доработаны, но пока не влиты в ветку experimental. Там улучшена работа кнопок с css стилями и таблицами. Сергей (автор MyTetra) скоро вольет эти изменения в ветку. Если не сложно - потестируйте тогда и эти изменения.

@UUSR
Copy link
Author

UUSR commented Jan 13, 2019

@DikBSD Обязательно протестирую когда появятся изменения в ветке experimental ,странно почему Сергей не выкладывает бинарные сборки в Release ,я там вижу только архивы с исходниками ,хорошо бы было бинарники иметь отдельно под Linux и под Windows.

@UUSR
Copy link
Author

UUSR commented Jan 14, 2019

UUSR, вероятно вы используете MSVC компилятор и компоненты для сборки. Попробуйте MinGW gcc. Либо придется править код, например, добавляя дефайны:
#define strncasecmp _strnicmp
и т.д
или заменяя сами функции

@retmas Да действительно не хватает дефайнов ,я для strncasecmp прописал но вот не могу никак для rastmathtex найти как прописать хотя мне вчера удалось собрать программу используя MSVC компилятор.
Создал новый issue тут

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants