Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 10.09.2019
Сообщений: 8
1

WxWidgets собирается неправильно

23.10.2019, 18:54. Показов 819. Ответов 7
Метки нет (Все метки)

Привет всем.
Планирую использовать в своём проекте библиотеку wxWidgets. На официальном сайте не нашёл готовых бинарников для Clang, потому решил собрать их из исходников самостоятельно. Дело происходило на Windows 10 x 64 + msys2.
Забегая вперёд, скажу, что библиотека у меня таки собралась. Но собралась, похоже, криво. Потому что при попытке прилинковать её к несложному "hello world", код которого взят из документации wxWidgets, терминал буквально взрывается от переполняющих его однотипных ошибок компоновщика. Суть каждой ошибки сводится к тому, что <something>.cpp.obj имеет undefined reference на <some_function>. Кроме того, косвенным доказательством кривой сборки wxWidgets служат сообщения от CMake, появляющиеся по ходу генерации build-файлов.
Итак, процесс генерации сборочной информации для Ninja:

Bash
1
2
3
4
$ cd /
$ mkdir wxbuild
$ cd wxbuild
$ cmake /wxWidgets-3.1.2 -G Ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=17 -DwxBUILD_PRECOMP=OFF -DwxBUILD_SHARED=OFF -DwxBUILD_MONOLITHIC=ON -DwxBUILD_DEBUG_LEVEL=0 -DwxUSE_COMPILER_TLS=2 -DwxUSE_UNSAFE_WXSTRING_CONV=OFF -DwxUSE_INTL=ON -DwxUSE_CONFIG=ON -DwxUSE_SOCKETS=ON -DwxUSE_IPV6=OFF -DwxUSE_OLE=ON -DwxUSE_DATAOBJ=ON -DwxUSE_IPC=ON -DwxUSE_CONSOLE_EVENTLOOP=ON -DwxUSE_ANY=ON -DwxUSE_APPLE_IEEE=ON -DwxUSE_ARCHIVE_STREAMS=ON -DwxUSE_BASE64=ON -DwxUSE_STACKWALKER=ON -DwxUSE_ON_FATAL_EXCEPTION=ON -DwxUSE_CMDLINE_PARSER=ON -DwxUSE_DATETIME=ON -DwxUSE_DEBUGREPORT=ON -DwxUSE_DYNLIB_CLASS=ON -DwxUSE_EXCEPTIONS=ON -DwxUSE_FFILE=ON -DwxUSE_FILE=ON -DwxUSE_FILE_HISTORY=ON -DwxUSE_FILESYSTEM=ON -DwxUSE_FONTENUM=ON -DwxUSE_FONTMAP=ON -DwxUSE_FS_ARCHIVE=ON -DwxUSE_FS_INET=ON -DwxUSE_FSVOLUME=ON -DwxUSE_FSWATCHER=ON -DwxUSE_GEOMETRY=ON -DwxUSE_LOG=ON -DwxUSE_LONGLONG=ON -DwxUSE_MIMETYPE=ON -DwxUSE_PRINTF_POS_PARAMS=ON -DwxUSE_SECRETSTORE=ON -DwxUSE_SNGLINST_CHECKER=ON -DwxUSE_SOUND=ON -DwxUSE_STDPATHS=ON -DwxUSE_STOPWATCH=ON -DwxUSE_STREAMS=ON -DwxUSE_SYSTEM_OPTIONS=ON -DwxUSE_TARSTREAM=ON -DwxUSE_TEXTBUFFER=ON -DwxUSE_TEXTFILE=ON -DwxUSE_TIMER=ON -DwxUSE_VARIANT=ON -DwxUSE_ZIPSTREAM=ON -DwxUSE_URL=ON -DwxUSE_PROTOCOL=ON -DwxUSE_PROTOCOL_HTTP=ON -DwxUSE_PROTOCOL_FTP=ON -DwxUSE_PROTOCOL_FILE=ON -DwxUSE_THREADS=ON -DwxUSE_INICONF=ON -DwxUSE_REGKEY=ON -DwxUSE_HELP=ON -DwxUSE_MS_HTML_HELP=ON -DwxUSE_HTML=ON -DwxUSE_WXHTML_HELP=ON -DwxUSE_XRC=ON -DwxUSE_AUI=ON -DwxUSE_PROPGRID=ON -DwxUSE_RIBBON=ON -DwxUSE_STC=ON -DwxUSE_CONSTRAINTS=ON -DwxUSE_LOGGUI=ON -DwxUSE_LOGWINDOW=ON -DwxUSE_LOG_DIALOG=ON -DwxUSE_MDI=ON -DwxUSE_DOC_VIEW_ARCHITECTURE=ON -DwxUSE_MDI_ARCHITECTURE=ON -DwxUSE_MEDIACTRL=ON -DwxUSE_RICHTEXT=ON -DwxUSE_PRINTING_ARCHITECTURE=ON -DwxUSE_WEBVIEW=ON -DwxUSE_CLIPBOARD=ON -DwxUSE_COMMON_DIALOGS=ON -DwxUSE_ACTIVEX=ON -DwxUSE_NATIVE_PROGRESSDLG=ON -DwxUSE_NATIVE_STATUSBAR=ON -DwxUSE_ACCESSIBILITY=ON -DwxBUILD_INSTALL=ON -DwxBUILD_COMPATIBILITY=3.1 -DCMAKE_INSTALL_PREFIX="/usr/local/wxWidgets"
Вывод от CMake (потенциально проблемные фрагменты выделены красным)
-- The C compiler identification is Clang 9.0.0
-- The CXX compiler identification is Clang 9.0.0
-- Check for working C compiler: C:/msys64/mingw64/bin/clang.exe
-- Check for working C compiler: C:/msys64/mingw64/bin/clang.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/msys64/mingw64/bin/clang++.exe
-- Check for working CXX compiler: C:/msys64/mingw64/bin/clang++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- cotire 1.8.0 loaded.
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Looking for d2d1.h
-- Looking for d2d1.h - found
-- Found OpenGL: opengl32
-- Looking for 4 include files stdlib.h, ..., float.h
-- Looking for 4 include files stdlib.h, ..., float.h - found
-- Looking for va_copy
-- Looking for va_copy - found
-- Performing Test HAVE_VARIADIC_MACROS
-- Performing Test HAVE_VARIADIC_MACROS - Success
-- Performing Test HAVE_GCC_ATOMIC_BUILTINS
-- Performing Test HAVE_GCC_ATOMIC_BUILTINS - Success
-- Performing Test wxHAVE_PTHREAD_CLEANUP
-- Performing Test wxHAVE_PTHREAD_CLEANUP - Success
-- Performing Test HAVE_PTHREAD_MUTEXATTR_T
-- Performing Test HAVE_PTHREAD_MUTEXATTR_T - Success
-- Performing Test HAVE_PTHREAD_MUTEXATTR_SETTYPE_DECL
-- Performing Test HAVE_PTHREAD_MUTEXATTR_SETTYPE_DECL - Success
-- Performing Test HAVE___THREAD_KEYWORD
-- Performing Test HAVE___THREAD_KEYWORD - Success
-- Performing Test HAVE_ABI_FORCEDUNWIND
-- Performing Test HAVE_ABI_FORCEDUNWIND - Success
-- Looking for localtime_r
-- Looking for localtime_r - not found
-- Looking for gmtime_r
-- Looking for gmtime_r - not found
-- Performing Test wxSIZE_T_IS_NOT_UINT
-- Performing Test wxSIZE_T_IS_NOT_UINT - Success
-- Performing Test wxSIZE_T_IS_NOT_ULONG
-- Performing Test wxSIZE_T_IS_NOT_ULONG - Success
-- Performing Test wxWCHAR_T_IS_REAL_TYPE
-- Performing Test wxWCHAR_T_IS_REAL_TYPE - Success
-- Performing Test HAVE_PW_GECOS
-- Performing Test HAVE_PW_GECOS - Failed
-- Looking for ftime
-- Looking for ftime - not found
-- Looking for wcsftime
-- Looking for wcsftime - found
-- Looking for wprintf
-- Looking for wprintf - found
-- Looking for putws
-- Looking for putws - not found
-- Looking for fputws
-- Looking for fputws - found
-- Looking for vswprintf
-- Looking for vswprintf - found
-- Looking for vswscanf
-- Looking for vswscanf - found
-- Looking for wcsdup
-- Looking for wcsdup - found
-- Looking for wcsnlen
-- Looking for wcsnlen - found
-- Looking for wcscasecmp
-- Looking for wcscasecmp - not found
-- Looking for wcsncasecmp
-- Looking for wcsncasecmp - not found
-- Looking for wcsrctombs
-- Looking for wcsrctombs - not found
-- Looking for wcstoull
-- Looking for wcstoull - found
-- Looking for fsync
-- Looking for fsync - not found
-- Looking for snprintf
-- Looking for snprintf - found
-- Looking for vsnprintf
-- Looking for vsnprintf - found
-- Looking for strnlen
-- Looking for strnlen - found
-- Looking for strtoull
-- Looking for strtoull - found
-- Looking for setpriority
-- Looking for setpriority - not found
-- Looking for round
-- Looking for round - not found
-- Looking for C++ include tr1/type_traits
-- Looking for C++ include tr1/type_traits - found
-- Looking for C++ include type_traits
-- Looking for C++ include type_traits - found
-- Looking for fcntl.h
-- Looking for fcntl.h - found
-- Looking for langinfo.h
-- Looking for langinfo.h - not found
-- Looking for sched.h
-- Looking for sched.h - found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Looking for w32api.h
-- Looking for w32api.h - found
-- Looking for wchar.h
-- Looking for wchar.h - found
-- Looking for wcstr.h
-- Looking for wcstr.h - not found
-- Performing Test HAVE_STD_WSTRING
-- Performing Test HAVE_STD_WSTRING - Success
-- Performing Test wxTEST_TZ_timezone
-- Performing Test wxTEST_TZ_timezone - Success
-- Performing Test WX_GMTOFF_IN_TM
-- Performing Test WX_GMTOFF_IN_TM - Failed
-- Looking for dlopen
-- Looking for dlopen - not found
-- Looking for shl_load
-- Looking for shl_load - not found
-- Looking for gettimeofday
-- Looking for gettimeofday - found
-- Looking for sys/epoll.h
-- Looking for sys/epoll.h - not found
-- Looking for sys/select.h
-- Looking for sys/select.h - not found
-- Looking for sys/inotify.h
-- Looking for sys/inotify.h - not found
-- Looking for sys/event.h
-- Looking for sys/event.h - not found
-- Looking for xlocale.h
-- Looking for xlocale.h - not found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of locale_t
-- Check size of locale_t - failed
-- Check size of pid_t
-- Check size of pid_t - done
-- Check size of size_t
-- Check size of size_t - done
-- Check size of wchar_t
-- Check size of wchar_t - done
-- Check size of int
-- Check size of int - done
-- Check size of long
-- Check size of long - done
-- Check size of short
-- Check size of short - done
-- Check size of gid_t
-- Check size of gid_t - failed
-- Check size of uid_t
-- Check size of uid_t - failed
-- Check size of mode_t
-- Check size of mode_t - done
-- Check size of off_t
-- Check size of off_t - done
-- Check size of long long
-- Check size of long long - done
-- Check size of ssize_t
-- Check size of ssize_t - done
-- Check if the system is big endian
-- Searching 16 bit integer
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Using unsigned short
-- Check if the system is big endian - little endian
-- Which libraries should wxWidgets use?
wxUSE_REGEX: builtin (enable support for wxRegEx class)
wxUSE_ZLIB: builtin (use zlib for LZW compression)
wxUSE_EXPAT: builtin (use expat for XML parsing)
wxUSE_LIBJPEG: builtin (use libjpeg (JPEG file format))
wxUSE_LIBPNG: builtin (use libpng (PNG image format))
wxUSE_LIBTIFF: builtin (use libtiff (TIFF file format))
wxUSE_LIBLZMA: OFF (use liblzma for LZMA compression)
wxUSE_STL: OFF (Use C++ STL classes)

-- Configured wxWidgets 3.1.2 for Windows-10.0.18362
Min OS Version required at runtime: Windows XP / Windows Server 2003 (x64 Edition)
Which GUI toolkit should wxWidgets use? msw
Should wxWidgets be compiled into single library? ON
Should wxWidgets be linked as a shared library? OFF
Should wxWidgets support Unicode? ON
What wxWidgets compatibility level should be used? 3.1
-- Configuring done
-- Generating done
-- Build files have been written to: C:/msys64/wxbuild


Как видно, многие заголовки не были найдены, а некоторые тесты завершились провалом. Особую пикантность ситуации придаёт тот факт, что файлы sys/epoll.h, sys/select.h, sys/inotify.h и sys/event.h реально существуют в системе, я видел их своими глазами. Несмотря на всё это, CMake объявляет об успешной генерации билда. Затем Ninja без проблем собирает на основе данного билда библиотеку, которая в итоге не линкуется с демонстрационным примером из документации.
Кто-нибудь в курсе, что это за аномалия?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.10.2019, 18:54
Ответы с готовыми решениями:

Можно ли использовать WxWidgets для простых программ с графическим интерфейсом?
Кто работал с этой библиотекой? Можно ли её использовать для простых программ с графическим...

Release не собирается
Юзаю Cbuilder XE, и не могу собрать релиз, только дебаг :(( Project-&gt;Options-&gt;Compiler...

Не собирается релиз
и то что дебаг версия запустилась на другом компьютере это нормально?

Google test не собирается
Помогите мне разобраться, пожалуйста! Качаю и распаковываю с https://github.com/google/googletest...

7
15350 / 8298 / 2014
Регистрация: 30.01.2014
Сообщений: 14,169
23.10.2019, 22:15 2
Цитата Сообщение от Диванный критик Посмотреть сообщение
Как видно, многие заголовки не были найдены, а некоторые тесты завершились провалом.
Это нормально.

Цитата Сообщение от Диванный критик Посмотреть сообщение
Особую пикантность ситуации придаёт тот факт, что файлы sys/epoll.h, sys/select.h, sys/inotify.h и sys/event.h реально существуют в системе
Это Linux`овые заголовки.
Под Win 10 вы их могли увидеть в составе Windows Subsystem for Linux, но при сборке под Win (что вы и сделали) они не нужны.

Вся приведенная вами диагностика на данный момент не имеет никакого отношения к проблеме.

Лучше покажите ошибки линковки, которые появляются и покажите как именно вы подключаете библиотеку.
1
0 / 0 / 0
Регистрация: 10.09.2019
Сообщений: 8
28.10.2019, 16:11  [ТС] 3
Приветствую всех и DrOffset.
В первую очередь, благодарю за предыдущий ответ. Теперь я точно уверен, что wxWidgets собирается правильно. Однако проблема линковки остаётся актуальной. За прошедшие несколько дней я не продвинулся ни на шаг. Не помогла и смена компоновщика на LLD. Единственный плюс: LLD умеет скрывать большую часть однотипных ошибок, потому многокилометровый лог нам не грозит.
Итак, демонстрирую ниже процесс компиляции и линковки.

Bash
1
2
$ clang++ -c hello.cpp -I /usr/local/wxWidgets/include -O3 -std=c++17 -o h.o
$ lld-link h.o /usr/local/wxWidgets/lib/clang_x64_lib/wxmsw31u.a /errorlimit:5
Вывод от LLD
lld-link: error: <root>: undefined symbol: WinMainCRTStartup
lld-link: error: undefined symbol: _ZNSt8ios_base4InitD1Ev
>>> referenced by h.o:(__dtor__ZStL8__ioinit)
>>> referenced by wxmsw31u.a(log.cpp.obj):(__dtor__ZStL8__ioinit)
>>> referenced by wxmsw31u.a(string.cpp.obj):(__dtor__ZStL8__ioinit)
>>> referenced by wxmsw31u.a(event.cpp.obj):(__dtor__ZStL8__ioinit)
>>> referenced by wxmsw31u.a(utilscmn.cpp.obj):(__dtor__ZStL8__ioinit)
>>> referenced by wxmsw31u.a(wincmn.cpp.obj):(__dtor__ZStL8__ioinit)
>>> referenced by wxmsw31u.a(window.cpp.obj):(__dtor__ZStL8__ioinit)
>>> referenced by wxmsw31u.a(nativdlg.cpp.obj):(__dtor__ZStL8__ioinit)
>>> referenced by wxmsw31u.a(combocmn.cpp.obj):(__dtor__ZStL8__ioinit)
>>> referenced by wxmsw31u.a(textcmn.cpp.obj):(__dtor__ZStL8__ioinit)
>>> referenced 15 more times

lld-link: error: undefined symbol: _Znwy
>>> referenced by h.o:(_Z11wxCreateAppv)
>>> referenced by h.o:(_ZN5MyApp6OnInitEv)
>>> referenced by h.o:(_ZN7MyFrameC1Ev)
>>> referenced by h.o:(_ZN7MyFrameC1Ev)
>>> referenced by h.o:(_ZN7MyFrameC1Ev)
>>> referenced by h.o:(_ZN7MyFrameC1Ev)
>>> referenced by h.o:(_ZN7MyFrameC1Ev)
>>> referenced by h.o:(_ZN7MyFrameC1Ev)
>>> referenced by h.o:(_ZN14wxFormatStringC2EPKc)
>>> referenced by h.o:(_ZN14wxMenuItemList10CreateNodeEP10wxNodeBaseS1_PvRK9wx ListKey)
>>> referenced 1462 more times

lld-link: error: undefined symbol: _ZdlPv
>>> referenced by h.o:(_Z11wxCreateAppv)
>>> referenced by h.o:(_ZN5MyApp6OnInitEv)
>>> referenced by h.o:(_ZN7MyFrameC1Ev)
>>> referenced by h.o:(_ZN7MyFrameC1Ev)
>>> referenced by h.o:(_ZN7MyFrameC1Ev)
>>> referenced by h.o:(_ZN7MyFrameC1Ev)
>>> referenced by h.o:(_ZN7MyFrameC1Ev)
>>> referenced by h.o:(_ZN7MyFrameC1Ev)
>>> referenced by h.o:(_ZN7MyFrameC1Ev)
>>> referenced by h.o:(_ZN7MyFrameC1Ev)
>>> referenced 11258 more times

lld-link: error: undefined symbol: _Unwind_Resume
>>> referenced by h.o:(_Z11wxCreateAppv)
>>> referenced by h.o:(_ZN5MyApp6OnInitEv)
>>> referenced by h.o:(_ZN7MyFrameC1Ev)
>>> referenced by h.o:(_ZN7MyFrameC1Ev)
>>> referenced by h.o:(_ZN7MyFrame7OnHelloER14wxCommandEvent)
>>> referenced by h.o:(_ZN7MyFrame7OnAboutER14wxCommandEvent)
>>> referenced by h.o:(_ZN8wxStringC2EPKc)
>>> referenced by h.o:(_ZN10wxMenuBase15AppendSeparatorEv)
>>> referenced by h.o:(_ZN5wxLog14IsLevelEnabledEm8wxString)
>>> referenced by h.o:(_ZN14wxFormatStringC2EPKc)
>>> referenced 2979 more times

lld-link: error: too many errors emitted, stopping now (use /errorlimit:0 to see all errors)
0
15350 / 8298 / 2014
Регистрация: 30.01.2014
Сообщений: 14,169
28.10.2019, 19:07 4
Диванный критик, В данном случае многие ошибки из-за отсутствия линковки стандартной библиотеки С++. Потому что _ZNSt8ios_base4InitD1Ev не что иное как std::ios_base::Init::~Init(), _Znwy - это operator new, а _ZdlPv - operator delete.

Поэтому очевидный совет добавить к линковке стандартную библиотеку.

Но все-таки хотелось бы увидеть первоначальный вариант линковки и первые 10-20 строк того "многокилометрового" лога.
0
0 / 0 / 0
Регистрация: 10.09.2019
Сообщений: 8
28.10.2019, 19:59  [ТС] 5
DrOffset, добавил к линковке файлы /mingw64/lib/libc++.a и /mingw64/lib/libc++abi.a (по идее, это и есть стандартная библиотека). Ничего не изменилось.
0
15350 / 8298 / 2014
Регистрация: 30.01.2014
Сообщений: 14,169
28.10.2019, 20:49 6
Цитата Сообщение от Диванный критик Посмотреть сообщение
Ничего не изменилось.
1) Покажите как вы делали до этого. До того, как начали экспериментировать с другим линкером.

2) Что у вас выдает вот такая команда?
Bash
1
clang++ hello.cpp -I/usr/local/wxWidgets/include -O3 -std=c++17 -L/usr/local/wxWidgets/lib/clang_x64_lib -lwxmsw31u -o test.exe
0
0 / 0 / 0
Регистрация: 10.09.2019
Сообщений: 8
04.11.2019, 01:58  [ТС] 7
DrOffset, я скопировал предложенную вами команду (без изменений) и выполнил в терминале. Вывод следующий:
C:\msys64\mingw64\bin\ld: невозможно найти -lwxmsw31u
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
Возможно, была допущена опечатка?

Что же насчёт моих более ранних экспериментов, то я делал вот так:
Bash
1
$ clang++ hello.cpp /usr/local/wxWidgets/lib/clang_x64_lib/wxmsw31u.a -I /usr/local/wxWidgets/include -static -O3 -o hello.exe
Первые несколько строк многокилометрового вывода
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\libstdc++.a(streambuf-inst.o): duplicate section `.rdata$_ZTSSt15basic_streambufIcSt11char_traitsIcEE[_ZTSSt15basic_streambufIcSt11char_traitsIcEE]' has different size
C:\msys64\mingw64\bin\ld: C:\Users\Prime\AppData\Local\Temp\hello-bc4d60.o:hello.cpp:(.text$_ZN20wxEventFunctorMethodI14wxEven tTypeTagI14wxCommandEventE7MyFrameS1_S3_EclEP12wxEvtHandlerR 7wxEvent[_ZN20wxEventFunctorMethodI14wxEventTypeTagI14wxCommandEventE 7MyFrameS1_S3_EclEP12wxEvtHandlerR7wxEvent]+0x6c): неопределённая ссылка на <wxOnAssert(char const*, int, char const*, char const*, char const*)>
C:\msys64\mingw64\bin\ld: C:\Users\Prime\AppData\Local\Temp\hello-bc4d60.o:hello.cpp:(.rdata$.refptr.wxTheAssertHandler[.refptr.wxTheAssertHandler]+0x0): неопределённая ссылка на <wxTheAssertHandler>
C:\msys64\mingw64\bin\ld: C:\Users\Prime\AppData\Local\Temp\hello-bc4d60.o:hello.cpp:(.rdata$.refptr.wxTrapInAssert[.refptr.wxTrapInAssert]+0x0): неопределённая ссылка на <wxTrapInAssert>
C:\msys64\mingw64\bin\ld: C:/msys64/usr/local/wxWidgets/lib/clang_x64_lib/wxmsw31u.a(filename.cpp.obj):filename.cpp:(.text+0x60cf): неопределённая ссылка на <__imp_CoCreateInstance>
C:\msys64\mingw64\bin\ld: C:/msys64/usr/local/wxWidgets/lib/clang_x64_lib/wxmsw31u.a(filename.cpp.obj):filename.cpp:(.text+0x646b): неопределённая ссылка на <__imp_OleUninitialize>


Кстати, с чего вдруг терминал начал говорить по-русски ("неопределённая ссылка" вместо "undefined reference"), я сам не понимаю. Наверное, обновление виновато...
0
15350 / 8298 / 2014
Регистрация: 30.01.2014
Сообщений: 14,169
04.11.2019, 20:47 8
Цитата Сообщение от Диванный критик Посмотреть сообщение
Возможно, была допущена опечатка?
Нет. В команде все правильно. Это команда для сборки программы с динамической версией библиотеки.

Судя по всему, такую версию вы не собирали.

Цитата Сообщение от Диванный критик Посмотреть сообщение
Первые несколько строк многокилометрового вывода
Выглядит так, как будто статическую библиотеку используют как динамическую.

Вообще, учитывая множество вараинтов конфигурации сборки, правильнее будет пользоваться утилитой wx-config. Навскидку для вашего случая:
Bash
1
clang++ `wx-config --cxxflags --static=yes` hello.cpp `wx-config --libs` -o hello.exe

Не по теме:

Совет: никогда не начинайте пробовать новое средство, пока не поймете почему не сработало старое.

1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.11.2019, 20:47

Не собирается проект в VS 2010
Вношу изменения в проект, далее пытаюсь его отладить либо построить, вместо этого vs, не учитывая...

Проверьте задачку по циклам, неправильно работает. [думаю что неправильно]
Спасибо что решили зайти. Задание выгладит так: http://*******/PW95p А результат выплнения:...

не компилируется wxwidgets
пытаюсь освоить библиотеку wxwidgets. Для начала решил скомпилировать пример // wxWidgets &quot;Hello...

wxWidgets SetBitmap
Доброе утро, с не давнего времени изучаю C++, до этого изучал C#. Возникла потребность в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru