2008-09-07 16 views
12

Más por interés que cualquier otra cosa, pero ¿puede compilar una aplicación DirectX en Linux?¿Es posible desarrollar aplicaciones de DirectX en Linux?

Obviamente no hay SDK oficial, pero pensé que podría ser posible con el vino.

¿Presumiblemente wine tiene una implementación de la interfaz DirectX para ejecutar juegos? ¿Es posible vincular eso? (Editar: Esto se llama winelib)

En su defecto, tal vez un compilador mingw cross con la aplicación que se ejecuta en el vino.

La mitad respondió mi propia pregunta aquí, pero me preguntaba si alguien había oído que se estaba haciendo algo así.

Respuesta

10

que he tenido un poco de suerte con este. Logré compilar this simple Direct3D example.

Utilicé winelib para esto (paquete wine-dev en Ubuntu). Gracias a alastair por señalarme a winelib.

Modifiqué ligeramente la fuente para convertir los wchars a caracteres (1 en la línea 52, 2 en la línea 55, eliminando la L antes de los literales de cadena). Puede haber una forma de evitar esto, pero esto lo puso en marcha.

entonces compilado la fuente con el siguiente:

wineg++ -ld3d9 -ld3dx9 triangle.cpp 

Esto genera un binario a.out.exe.so, así como una secuencia de comandos a.out a ejecutar el programa bajo el vino.

0

Actualmente no hay forma de compilar el código de DirectX para apuntar directamente a Linux. Construiría su aplicación como lo haría normalmente, luego la ejecutaría usando una capa de compatibilidad como Wine/Cedega.

4

Si esto no se trata de portar sino de crear, debería considerar OpenGL, ya que esta API es tan poderosa como DirectX y mucho más fácil de portar a Mac o Linux.

No conozco sus requisitos, así que lo menciono mejor.

0

Wine es la única forma de ejecutar DirectX en Linux

2

No se puede enlazar con el vino, ya que es esencialmente una llamada interdictor/traductor en lugar de un conjunto de bibliotecas que pueden engancharse con las. Si Linux es importante, vaya a OpenGL/SDL/OpenAL.

0

puede compilar una aplicación de directx en linux, pero no ejecutarla de inmediato. si utiliza un crosscompilator que hace que Windows exe y apunte a las ventanas sdk y directx sdk.

2

Creo (nunca lo he intentado) puede compilar binarios de Linux contra winelib. Por lo tanto, funciona como un ejecutable de Linux, pero con las bibliotecas de Windows.

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

+0

Sí, esto era en lo que estaba pensando cuando hice la pregunta. Investigaré más a fondo. – Nick

1

vaya al directorio con la fuente y escribe:

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

Si obtiene este error:

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

Asegúrese de que ha llamado su archivo main.cpp y no main.c .

Cuestiones relacionadas