c++ - instalar - ¿Es posible desarrollar aplicaciones de DirectX en Linux?
wine download (8)
Más por interés que cualquier otra cosa, pero ¿puedes compilar una aplicación DirectX en Linux?
Obviamente no hay SDK oficial, pero pensé que podría ser posible con el vino.
Presumiblemente vino tiene una implementación de la interfaz de 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 contestó mi propia pregunta aquí, pero me pregunté si alguien había oído hablar de algo así.
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.
Creo (nunca lo he intentado) que puedes compilar binarios de Linux contra winelib. Por lo tanto, funciona como un ejecutable de Linux, pero con las bibliotecas de Windows.
He tenido algo de suerte con esto. Pude compilar este simple ejemplo de Direct3D .
Usé winelib para esto (paquete wine-dev en Ubuntu). Gracias a alastair por señalarme 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 la cadena). Puede haber una forma de evitar esto, pero esto lo puso en marcha.
Luego compilé la fuente con lo siguiente:
wineg++ -ld3d9 -ld3dx9 triangle.cpp
Esto genera un binario a.out.exe.so, así como un script a.out para ejecutarlo en wine.
No se puede vincular con el vino ya que es esencialmente un intérprete de llamadas / traductor en lugar de un conjunto de bibliotecas en las que puede engancharse. Si Linux es importante, vaya a OpenGL / SDL / OpenAL.
Si 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 tus requisitos, así que mejor menciónelo.
puede compilar aplicaciones directx en Linux, pero no ejecutarlas de inmediato. si usa un crosscompilator que hace que Windows exe y apunte a las ventanas sdk y directx sdk.
vaya al directorio con la fuente y escriba:
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 haber nombrado su archivo main.cpp y no main.c.
Wine es la única forma de ejecutar DirectX en Linux