可以在Linux中开发DirectX应用程序吗?
除了感兴趣之外,还有其他更多的东西,但是我们可以在Linux下编译DirectX应用程序吗?
显然没有官方的SDK,但我认为使用葡萄酒可能是可行的。
大概wine具有DirectX接口的实现以便运行游戏?是否可以对此进行链接? (编辑:这叫做winelib)
失败的话,也许是mingw交叉编译器,其应用程序在wine下运行。
一半的人在这里回答了我自己的问题,但想知道是否有人听说过这样的事情?
解决方案
回答
当前尚无法将DirectX代码编译为直接针对Linux的方法。我们将像平常一样构建应用程序,然后使用Wine / Cedega等兼容层运行它。
回答
如果这不是移植而是创建,则应真正考虑OpenGL,因为此API与DirectX一样强大,并且更容易移植到Mac或者Linux。
我不知道要求,所以最好提一下。
回答
Wine是在Linux中运行DirectX的唯一方法
回答
我们无法针对wine进行链接,因为它本质上是一个调用拦截器/转换器,而不是我们可以连接到的一组库。如果Linux很重要,请使用OpenGL / SDL / OpenAL。
回答
我们可以在Linux中编译DirectX应用程序,但不能立即启动它。
如果我们使用使Windows exe并指向Windows sdk和Directx sdk的交叉编译器。
回答
我相信(我从未尝试过)可以针对winelib编译Linux二进制文件。因此,它与Linux可执行文件一样工作,但与Windows库一起工作。
http://www.winehq.org/site/docs/winelib-guide/index
回答
我对此有些运气。我设法编译了这个简单的Direct3D示例。
我为此使用winelib(Ubuntu上的wine-dev软件包)。感谢alastair将我指向winelib。
我稍微修改了源代码,将wchars转换为chars(第52行的1,第55行的2,通过删除字符串文字前的L)。可能有解决的办法,但这已经启动并运行了。
然后,我使用以下代码编译源代码:
wineg++ -ld3d9 -ld3dx9 triangle.cpp
这将生成一个a.out.exe.so二进制文件,以及一个可以在wine下运行它的a.out脚本。