Does SDL3 have the support of full-fledged Drag & Drop ? For example, I need to register own data format.
Can I use SDL3 as shared library in my application ? For example,In case with wxWidgets I can’t copy library of wxWidgets in folder with my application - it is necessary to install wxWidgets. It is big problem for me.
You 100% can ship a wxWidgets-based application without having to “install” it on the end user’s machine. On Windows, the wxWidgets DLLs just need to be in the same folder as the .exe, on macOS just put the wxWidgets shared library in the application bundle, and on Linux you can basically do the same thing as on Windows (but with a little extra legwork so the runtime linker will know to look in the same place as the binary) or just require the user have the necessary version of wxWidgets installed via the package manager.
Could you help me to solve the problem with wxWidgets ? I’m Windows-developer and I have no problem with “wxWidgets DLLs”. But I have big problems with Linux and Mac.
and on Linux you can basically do the same thing as on Windows
I tried to copy so-files into application folder and copy setup.h too. And it launches on Debian, but if I copy this project to Fedora the errors of the linker are happened. Please, tell me, what I do wrong ?
./libwx_baseu-3.2.so: undefined reference to `lstat64@GLIBC_2.33'
./libwx_gtk3u_core-3.2.so: undefined reference to `TIFFGetVersion@LIBTIFF_4.0'
./libwx_gtk3u_core-3.2.so: undefined reference to `TIFFReadDirectory@LIBTIFF_4.0'
./libwx_baseu-3.2.so: undefined reference to `pcre2_config_32'
./libwx_gtk3u_gl-3.2.so: undefined reference to `wl_proxy_marshal_flags'
./libwx_baseu-3.2.so: undefined reference to `pcre2_code_free_32'
./libwx_baseu-3.2.so: undefined reference to `pthread_mutexattr_init@GLIBC_2.34'
./libwx_gtk3u_core-3.2.so: undefined reference to `TIFFReadRGBAImageOriented@LIBTIFF_4.0'
./libwx_baseu-3.2.so: undefined reference to `pcre2_get_ovector_pointer_32'
./libwx_baseu-3.2.so: undefined reference to `fcntl64@GLIBC_2.28'
./libwx_baseu-3.2.so: undefined reference to `explicit_bzero@GLIBC_2.25'
./libwx_baseu-3.2.so: undefined reference to `stat64@GLIBC_2.33'
./libwx_baseu-3.2.so: undefined reference to `pthread_create@GLIBC_2.34'
./libwx_gtk3u_core-3.2.so: undefined reference to `TIFFDefaultStripSize@LIBTIFF_4.0'
./libwx_gtk3u_core-3.2.so: undefined reference to `TIFFWriteScanline@LIBTIFF_4.0'
./libwx_baseu-3.2.so: undefined reference to `pcre2_match_data_create_from_pattern_32'
./libwx_gtk3u_core-3.2.so: undefined reference to `_TIFFfree@LIBTIFF_4.0'
./libwx_baseu-3.2.so: undefined reference to `dlclose@GLIBC_2.34'
./libwx_baseu-3.2.so: undefined reference to `std::__exception_ptr::exception_ptr::_M_release()@CXXABI_1.3.13'
./libwx_gtk3u_core-3.2.so: undefined reference to `TIFFGetField@LIBTIFF_4.0'
./libwx_baseu-3.2.so: undefined reference to `pthread_setname_np@GLIBC_2.34'
./libwx_gtk3u_core-3.2.so: undefined reference to `TIFFScanlineSize@LIBTIFF_4.0'
./libwx_baseu-3.2.so: undefined reference to `pthread_key_delete@GLIBC_2.34'
./libwx_gtk3u_core-3.2.so: undefined reference to `gdk_wayland_display_prefers_ssd'
./libwx_gtk3u_core-3.2.so: undefined reference to `pow@GLIBC_2.29'
./libwx_baseu-3.2.so: undefined reference to `dlsym@GLIBC_2.34'
./libwx_gtk3u_core-3.2.so: undefined reference to `TIFFClose@LIBTIFF_4.0'
./libwx_gtk3u_core-3.2.so: undefined reference to `TIFFClientOpen@LIBTIFF_4.0'
./libwx_gtk3u_core-3.2.so: undefined reference to `TIFFFlush@LIBTIFF_4.0'
./libwx_gtk3u_core-3.2.so: undefined reference to `TIFFRGBAImageOK@LIBTIFF_4.0'
./libwx_baseu-3.2.so: undefined reference to `pthread_setspecific@GLIBC_2.34'
./libwx_baseu-3.2.so: undefined reference to `dlopen@GLIBC_2.34'
./libwx_gtk3u_core-3.2.so: undefined reference to `TIFFGetFieldDefaulted@LIBTIFF_4.0'
./libwx_baseu-3.2.so: undefined reference to `fstat64@GLIBC_2.33'
./libwx_baseu-3.2.so: undefined reference to `dlerror@GLIBC_2.34'
./libwx_baseu-3.2.so: undefined reference to `pthread_getspecific@GLIBC_2.34'
./libwx_baseu-3.2.so: undefined reference to `pcre2_compile_32'
./libwx_baseu-3.2.so: undefined reference to `pthread_mutex_trylock@GLIBC_2.34'
./libwx_gtk3u_core-3.2.so: undefined reference to `TIFFSetField@LIBTIFF_4.0'
./libwx_baseu-3.2.so: undefined reference to `pcre2_match_data_free_32'
./libwx_baseu-3.2.so: undefined reference to `pthread_join@GLIBC_2.34'
./libwx_baseu-3.2.so: undefined reference to `pthread_mutexattr_settype@GLIBC_2.34'
./libwx_baseu-3.2.so: undefined reference to `pcre2_match_32'
./libwx_gtk3u_core-3.2.so: undefined reference to `TIFFSetWarningHandler@LIBTIFF_4.0'
./libwx_baseu-3.2.so: undefined reference to `std::__exception_ptr::exception_ptr::_M_addref()@CXXABI_1.3.13'
./libwx_gtk3u_core-3.2.so: undefined reference to `TIFFSetErrorHandler@LIBTIFF_4.0'
./libwx_gtk3u_core-3.2.so: undefined reference to `_TIFFmalloc@LIBTIFF_4.0'
./libwx_baseu-3.2.so: undefined reference to `pcre2_get_error_message_32'
./libwx_baseu-3.2.so: undefined reference to `dladdr@GLIBC_2.34'
./libwx_gtk3u_core-3.2.so: undefined reference to `TIFFSetDirectory@LIBTIFF_4.0'
I suspect you have a huge conflict. Debian and Fedore work very differently.
What *.so did you copy along? Is all the GTK3 stuff included?
You still have errors with glibc, it’s a very tricky lib.
I would only supply the SDL stuff, the user should install the rest via the package manager.
Been a long time since I built anything for Linux, but it looks like you built wxWidgets with a different version of glibc than what’s shipping with Fedora.
I don’t have a Linux system, so I can’t really help you out, I’m afraid. Maybe try the wxWidgets forums?
On macOS, you tell Xcode you want to link against the wxWidgets libraries and it will automatically add the necessary steps to put them inside your app’s bundle.
Regardless, this is a problem you’ll have to solve whether you use wxWidgets or SDL.
Since Linux makes it so easy to manage packages, you should use it and install the stuff from there, then everything fits together nicely. This is exactly why I will never use Windows again.
SDL3 is an exception, as it is still brand new and is not (yet) available from the package managers.