可以在Linux中开发DirectX应用程序吗?

时间:2020-03-05 18:48:50  来源:igfitidea点击:

除了感兴趣之外,还有其他更多的东西,但是我们可以在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脚本。