Вину, отказавшая компиляция, нужен некоторый совет

Извините за мой плохой английский язык.

Я пытаюсь скомпилировать исправленное вино chrisbmrs для поддержки собственного D3D9: https://github.com/chrisbmr/wine/tree/d3dadapter9-wip. Я попытался следовать советам из файла README, и я также пытался скомпилировать и./tools/wineinstall и./настраивать, но я постоянно получаю ошибки:

make[1]: Entering directory `/home/wine-d3dadapter9-wip/dlls/d3d9'
../../tools/winegcc/winegcc  -B../../tools/winebuild --sysroot=../.. -fasynchronous-unwind-tables -shared ./d3d9.spec buffer.o d3d9_main.o d3dadapter9.o device.o directx.o query.o shader.o stateblock.o surface.o swapchain.o texture.o vertexdeclaration.o volume.o       version.res    -o d3d9.dll.so  -ldxguid -luuid -ladvapi32 -lgdi32 -luser32 -lwined3d  ../../libs/port/libwine_port.a   
d3d9_main.o: In function `DllMain':
/home/wine-d3dadapter9-wip/dlls/d3d9/d3d9_main.c:159: undefined reference to `d3dadapter9_destroy'
/home/wine-d3dadapter9-wip/dlls/d3d9/d3d9_main.c:154: undefined reference to `d3dadapter9_init'
collect2: error: ld returned 1 exit status
winegcc: gcc failed
make[1]: *** [d3d9.dll.so] Error 2
make[1]: Leaving directory `/home/wine-d3dadapter9-wip/dlls/d3d9'
make: *** [dlls/d3d9] Error 2

Compilation failed, aborting install.

или

configure: libOSMesa development files not found (or too old), OpenGL rendering in bitmaps won't be supported.
configure: libd3dadapter9 development files not found. Native Direct3D9 won't be supported.
configure: libhal development files not found, no legacy dynamic device support.
configure: libldap (OpenLDAP) development files not found, LDAP won't be supported.

Укажите на меня в правильном направлении. Я ценю любую справку.Спасибо.

ОС: Ubuntu13.04, GPU: Nvidia 9200 м, драйвер: nvidia xorg 313.

1
задан 21 July 2013 в 01:51

4 ответа

Попробуя сам сейчас, я позволю себе узнать, как это происходит.

Нашел это в архивах: http://lists.freedesktop.org/archives/mesa-dev/2013-July/041900.html

И это привело меня к Меза d3dadapter, которая должна включать отсутствующий libd3dadapter9: https://github.com/chrisbmr/Mesa-3D/tree/gallium-nine

И есть также ссылка на Wine у вас уже есть там.

0
ответ дан 21 July 2013 в 01:51

Попробуйте установить все зависимости сборки Wine:

sudo apt-get build-dep wine

Если это все еще не удовлетворяет всем зависимостям, вы можете попробовать подход, который я опубликовал в / usr / bin / ld: not find -lpulse

0
ответ дан 21 July 2013 в 01:51

Я использовал этот трюк,

Надеюсь, вам это тоже поможет, ребята,

Перейдите в папку Wine и отредактируйте файл конфигурации: откройте его в текстовом редакторе.

Заменить строку:

LIBS="-lOSMesa $X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS $LIBS"

на

LIBS="-lOSMesa -lGLU -lGL $X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS $LIBS"

и добавить:

fi
if test "x$ac_cv_lib_soname_OSMesa" = "x"; then :

в:

fi
ac_cv_lib_soname_OSMesa=libOSMesa.so
if test "x$ac_cv_lib_soname_OSMesa" = "x"; then :

, затем сохранить и попробуйте ./configure again.

0
ответ дан 21 July 2013 в 01:51

Я не использую Ubuntu (я использую Fedora 19), но это может все еще быть полезно. Я следовал за руководством, обеспеченным в этой ссылке. Однако некоторые шаги оставлены позади. Я попытаюсь предоставить больше полных инструкций:

  1. Проверьте следующее:

    • Выполнение glxinfo | grep "OpenGL renderer string" должен возвратить что-то содержащее Gallium.

    • Этот ответ предполагает, что Вы уже установили (обычное) Вино, это может быть сделано путем выполнения sudo apt-get install wine.

      Выполнение wine --version должен возвратить версию wine-1.6-rcX или более новый.

  2. Установите все зависимости сборки для:

    • Мезаструктура, для создания галлия девять:

      sudo apt-get build-dep mesa
      
    • Вино, для создания вина-d3dadapter9:

      sudo apt-get build-dep wine
      
  3. Во-первых, давайте создадим и установим галлий девять d3dadapter9:

    • Загрузите http://github.com/chrisbmr/Mesa-3D/archive/gallium-nine.zip и распакуйте Mesa-3D-gallium-nine папка где-нибудь можно найти его назад, например, в корневом каталоге.

    • Откройте терминал в распакованном Mesa-3D-gallium-nine папка и выполненный к следующим командам:

      CFLAGS="-m32" CXXFLAGS="-m32" ./autogen.sh --prefix=/usr \
      --with-gallium-drivers=nouveau,r600,swrast --enable-nine \
      --with-gallium-driver-dir="`pwd`/src/gallium/targets/pipe-loader/.libs" \
      --enable-debug --enable-texture-float --with-dri-drivers= --disable-dri \
      --disable-opengl --disable-egl --disable-vdpau --disable-xvmc --disable-gbm \
      --disable-gallium-llvm --enable-32bit --disable-64bit
       make
       sudo ln -s "\`pwd\`/lib/gallium/libd3dadapter9.so.0.0.0" /usr/lib/
       sudo ln -s "\`pwd\`/lib/gallium/libd3dadapter9.so.0" /usr/lib/
       sudo ln -s "\`pwd\`/lib/gallium/libd3dadapter9.so" /usr/lib/
       sudo ln -s "\`pwd\`/include/d3dadapter" /usr/include/
      
  4. Затем мы создаем и устанавливаем библиотеки молодого вина:

    • Загрузите соответствующее основное вином ответвление в следующей ссылке и распакуйте wine-master папка где-нибудь можно найти его назад, например, в корневом каталоге.

    • Загрузите d3dadapter9-wip.zip и распакуйте все содержание wine-d3dadapter9-wip каталог в ранее распакованном wine-master папка. Примите решение перезаписать существующие файлы.

    • Откройте терминал в wine-master папка и выполненный к следующим командам:

      ./configure
      make
      for f in d3d9.dll gdi32.dll user32.dll wineps.drv winex11.drv;
      do
          sudo mv /usr/lib/wine/$f.so /usr/lib/wine/$f.so.old;
          sudo ln -s "\`pwd\`/dlls/\`basename -s .dll $f\`/$f.so" /usr/lib/wine/;
      done
      
  5. Настройте Вино для использования девять:

    • Выполненный regedit.
    • Перейдите к HKEY_CURRENT_USER\Software\Wine\Direct3D. Если это не там, создайте его.
    • Создайте новую названную стоимость DWORD UseNative. Установите его значение к 1.

Для получения дополнительной информации об использовании галлия девять, посмотрите на руководство, обеспеченное в первой ссылке, которую я отправил.

0
ответ дан 21 July 2013 в 01:51

Другие вопросы по тегам:

Похожие вопросы: