32-битные библиотеки wxGTK (он же wxWidgets) в 64-битной системе
Здравствуйте. Решил я установить PCSX2. Скачал исходный код, сделал cmake . и увидел ошибку:
CMake Error at CMakeLists.txt:15 (message):
PCSX2 does not support 64bits environment. Please install a 32bits chroot or a 32bits OS.
PCSX2 have neither no plan to support the 64bits architecture in the future.
It will need a complete rewrite of the core emulator and a lots of time
However when linux distribution will support properly multi-arch package, it will
be at least possible to easily compile and install PCSX2 witout too much hassle (the chroot environment)
-- Configuring incomplete, errors occurred!
Ладно, не дурак, удалил из CMakeLists.txt if/then, который проверяет систему на 64-битность. Затем установил пару зависимостей (glew, SparseHash) и подготовка к компиляции оказалась завершена:
zenitur@athlon64x2 ~/Downloads/pcsx2-0.9.8-r4600-sources/build $ nano ../CMakeLists.txt
zenitur@athlon64x2 ~/Downloads/pcsx2-0.9.8-r4600-sources/build $ cmake ..
-- BuildType set to Devel by default
-- Disable the stripping by default in Devel build !!!
-- Use internal version of Soundtouch by default.
Note: There have been issues in the past with sound quality depending on the version of Soundtouch
Use -DFORCE_INTERNAL_SOUNDTOUCH=FALSE at your own risk
-- Install localization file in bin/Langs by default
-- Found Freetype: /usr/lib64/libfreetype.so
-- Found GTK2_GTK: /usr/lib64/libgtk-x11-2.0.so
-- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so
-- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib64/libX11.so
-- Found ALSA: /usr/lib64/libasound.so
-- Found BZip2: /usr/lib64/libbz2.so
-- Looking for BZ2_bzCompressInit in /usr/lib64/libbz2.so
-- Looking for BZ2_bzCompressInit in /usr/lib64/libbz2.so - found
-- Found JPEG: /usr/lib64/libjpeg.so
-- Looking for include files CMAKE_HAVE_PTHREAD_H
-- Looking for include files CMAKE_HAVE_PTHREAD_H - found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found Subversion: /usr/bin/svn (found version "1.6.15")
-- Found wxWidgets: TRUE
-- Found ZLIB: /usr/include (found version "1.2.5")
-- Found Cg: /opt/nvidia-cg-toolkit/lib64/libCg.so;/opt/nvidia-cg-toolkit/lib64/libCgGL.so
-- Found GLEW: /usr/lib64/libGLEW.so
-- Found PortAudio: /usr/lib64/libportaudio.so
-- Found SparseHash: /usr/include
-- Use internal pcsx2 SoundTouch library
-- Skip build of GSdx: miss some dependencies
-- check these libraries -> opengl, X11, pcsx2 SDL
-- Configuring done
-- Generating done
-- Build files have been written to: /home/zenitur/Downloads/pcsx2-0.9.8-r4600-sources/build
zenitur@athlon64x2 ~/Downloads/pcsx2-0.9.8-r4600-sources/build $
Замечательно. При этом я совершенно спокоен за наличие 32-битных библиотек: у меня есть оверлей pcsx2, который содержит очень старый pcsx2, коммит 1736 (до миграции на новую систему сборки и wxWidgets одновременно), который собирается, и оверлей содержит ebuild с nvidia-cg-toolkit с USE-флагом multilib (устанавливающий и 32-, и 64-битные библиотеки). Но я ошибся:
[ 12%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/AlignedMalloc.cpp.o
In file included from /home/zenitur/Downloads/pcsx2-0.9.8-r4600-sources/common/include/Utilities/Dependencies.h:182,
from /home/zenitur/Downloads/pcsx2-0.9.8-r4600-sources/common/src/Utilities/PrecompiledHeader.h:21,
from /home/zenitur/Downloads/pcsx2-0.9.8-r4600-sources/common/src/Utilities/AlignedMalloc.cpp:19:
/usr/include/wx-2.8/wx/string.h:827: ошибка: ‘wxChar& wxString::operator[](unsigned int)’ cannot be overloaded
/usr/include/wx-2.8/wx/string.h:824: ошибка: with ‘wxChar& wxString::operator[](size_t)’
make[2]: *** [common/src/Utilities/CMakeFiles/Utilities.dir/AlignedMalloc.cpp.o] Ошибка 1
make[1]: *** [common/src/Utilities/CMakeFiles/Utilities.dir/all] Ошибка 2
make: *** [all] Ошибка 2
Ладно, я не дурак: выше же меня предупреждали о возможных проблемах с SoundTouch, и дан параметр для его отключения. И всё равно та же ошибка повторилась с другим компонентом. Тогда я начал искать причину и нашёл вот что:
zenitur@athlon64x2 ~/Downloads/pcsx2-0.9.8-r4600-sources/build $ ls /usr/lib32/lib[tab]wrap.so zenitur@athlon64x2 ~/Downloads/pcsx2-0.9.8-r4600-sources/build $ ls /usr/lib64/libwx_ Display all 102 possibilities? (y or n) libwx_baseu-2.8.so libwx_gtk2u_html-2.8.so libwx_baseu-2.8.so.0 libwx_gtk2u_html-2.8.so.0 libwx_baseu-2.8.so.0.8.0 libwx_gtk2u_html-2.8.so.0.8.0 libwx_baseu-2.9.so libwx_gtk2u_html-2.9.so libwx_baseu-2.9.so.1 libwx_gtk2u_html-2.9.so.1 libwx_baseu-2.9.so.1.0.0 libwx_gtk2u_html-2.9.so.1.0.0 libwx_baseu_net-2.8.so libwx_gtk2u_media-2.8.so libwx_baseu_net-2.8.so.0 libwx_gtk2u_media-2.8.so.0 libwx_baseu_net-2.8.so.0.8.0 libwx_gtk2u_media-2.8.so.0.8.0 libwx_baseu_net-2.9.so libwx_gtk2u_media-2.9.so libwx_baseu_net-2.9.so.1 libwx_gtk2u_media-2.9.so.1 libwx_baseu_net-2.9.so.1.0.0 libwx_gtk2u_media-2.9.so.1.0.0 libwx_baseu_xml-2.8.so libwx_gtk2u_ogl-2.8.so libwx_baseu_xml-2.8.so.0 libwx_gtk2u_ogl-2.8.so.0 libwx_baseu_xml-2.8.so.0.8.0 libwx_gtk2u_ogl-2.8.so.0.8.0 libwx_baseu_xml-2.9.so libwx_gtk2u_plot-2.8.so libwx_baseu_xml-2.9.so.1 libwx_gtk2u_plot-2.8.so.0 libwx_baseu_xml-2.9.so.1.0.0 libwx_gtk2u_plot-2.8.so.0.8.0 libwx_gtk2u_adv-2.8.so libwx_gtk2u_propgrid-2.9.so libwx_gtk2u_adv-2.8.so.0 libwx_gtk2u_propgrid-2.9.so.1 libwx_gtk2u_adv-2.8.so.0.8.0 libwx_gtk2u_propgrid-2.9.so.1.0.0 libwx_gtk2u_adv-2.9.so libwx_gtk2u_qa-2.8.so libwx_gtk2u_adv-2.9.so.1 libwx_gtk2u_qa-2.8.so.0 --More--
Нет 32-битных библиотек wxWidgets. Где их взять? Есть вариант "скомпилировать вручную в какой-нибудь /home/zenitur/32bit, потом взять каталог lib оттуда и переписать содержимое в /usr/local/lib32", но это же неправильно. Вдруг есть способ получше?
- Для комментирования войдите или зарегистрируйтесь

сильно смахивает на ересь
сильно смахивает на ересь ё14443
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)