Ошибка сборки wxwidget - windows - mingw - mingw32-make: *** [.. \ .. \ lib \ gcc_dll \ wxmsw313u_gcc_custom.dll] Ошибка 1 - PullRequest
0 голосов
/ 01 ноября 2019

Я пытался использовать сборку wxWidgets-3.1.3 с MinGW-W64 на x64 машине Windows.

Я следовал за этой веткой, что привело меня к загрузке и сборке. Так что я установил его, и некоторые видео на YouTube сказали, что мне нужно собрать его сейчас. Перейдите к установленной папке и введите следующую команду:

mingw32-make -f makefile.gcc BUILD=release SHARED=1 MONOLITHIC=1 UNICODE=1.

Это заняло почти полчаса, а теперь выдает сообщение об ошибке:

collect2.exe: error: ld returned 1 exit status
makefile.gcc:5329: recipe for target '..\..\lib\gcc_dll\wxmsw313u_gcc_custom.dll' failed
mingw32-make: *** [..\..\lib\gcc_dll\wxmsw313u_gcc_custom.dll] Error 1

Вот полный файл журнала:

https://pastebin.com/zxeHhF6K

Конфигурация MinGW:

Version : 8.1.0
Architecture : x86_64
Threads : posix
Exceptions : seh
Build version : 0

Как я могу решить эту проблему? Я использую CLion, есть ли другой короткий или простой способ?

1 Ответ

0 голосов
/ 02 ноября 2019

Соответствующая ошибка

..\..\lib\gcc_dll/libwxexpat.a(wxexpat_xmlparse.o):xmlparse.c:(.text+0x337d): undefined reference to `_imp__rand_s'

, и это очень странно, потому что MinGW-w64 8.1 определенно должен иметь rand_s(). Вы уверены, что используете правильный компилятор? Т.е. что дает g++ -v, если вы запускаете его из одной и той же командной строки?

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

Кроме того, в следующий раз вы можете использовать опцию -j4 с make, если у вас есть хотя бы 4 логических процессора на вашей машине (и есть вероятность, что вы делаете это в настоящее время), чтобы значительно ускорить сборку.

...