2008-09-07 6 views
12

Больше из интереса, чем что-либо еще, но вы можете скомпилировать приложение DirectX под Linux?Возможно ли разработать приложения DirectX в Linux?

Очевидно, что нет официального SDK, но я думал, что это возможно с вином.

Предположительно вино имеет реализацию интерфейса DirectX для запуска игр? Можно ли связать это? (edit: Это называется winelib)

Несоблюдение этого, возможно, кросс-компилятор с приложением, работающим под вином.

Половина ответил на мой собственный вопрос здесь, но задавался вопросом, слышал ли кто-нибудь о чем-то подобном?

ответ

10

У меня было немного удачи с этим. Мне удалось собрать this simple Direct3D example.

Я использовал winelib для этого (пакет вина-dev на Ubuntu). Спасибо alastair за указание на winelib.

Я слегка изменил источник, чтобы преобразовать wchars в символы (1 на строке 52, 2 на строке 55, удалив L перед строковыми литералами). Может быть, есть способ обойти это, но это поднялось и работает.

Затем я составил источник со следующим:

wineg++ -ld3d9 -ld3dx9 triangle.cpp 

Это создает a.out.exe.so двоичный, а также a.out сценарий для запуска под вина.

0

В настоящее время нет способа скомпилировать код DirectX для прямой установки на Linux. Вы бы создали свое приложение, как обычно, и запустили его с помощью уровня совместимости, такого как Wine/Cedega.

4

Если речь идет не о переносе, а создании, вы должны действительно рассмотреть OpenGL, поскольку этот API столь же мощный, как DirectX, и намного проще переносить на Mac или Linux.

Я не знаю ваших требований, поэтому лучше упомяните об этом.

0

Wine является единственным способом запуска DirectX в Linux

2

Вы не можете связать с вином, как это по существу вызов Interdictor/переводчик, а не набор библиотек вы можете подключить в. Если Linux важнее, перейдите OpenGL/SDL/OpenAL.

0

вы можете скомпилировать приложения directx в Linux, но не запускать их сразу. , если вы используете кросс-пикатор, который делает окна exe и указывает на окна sdk и directx sdk.

2

Я верю (я никогда не пробовал это) вы можете скомпилировать двоичные файлы Linux против winelib. Таким образом, он работает так же, как и исполняемый файл Linux, но с библиотеками окон.

http://www.winehq.org/site/docs/winelib-guide/index

+0

Да, это было то, о чем я думал, когда задавал вопрос. Я буду исследовать дальше. – Nick 2008-09-15 23:21:58

1

перейти в каталог с источником и введите:

winemaker --lower-uppercase -icomdlg32 -ishell32 -ishlwapi -iuser32 -igdi32 -iadvapi32 -ld3d9 . 
make 
wine yourexecutable.exe.so 

Если вы получаете эту ошибку:

main.c:95:5: error: ‘struct IDirect3D9’ has no member named ‘CreateDevice’ 

убедитесь, что вы назвали ваш файл main.cpp и не main.c ,

 Смежные вопросы

  • Нет связанных вопросов^_^