2008-09-07 21 views
12

もっと興味深いですが、linuxの下でDirectXアプリケーションをコンパイルできますか?LinuxでDirectXアプリケーションを開発することは可能ですか?

明らかに公式のSDKはありませんが、私はワインで可能かもしれないと考えていました。

おそらくワインには、ゲームを実行するためのDirectXインターフェイスの実装がありますか?これとリンクすることは可能ですか? (編集:これはwinelibと呼ばれています)

これは失敗かもしれませんが、おそらくワインの下で実行されているアプリとmingwクロスコンパイラ。

半分は私自身の質問にここで答えましたが、誰かがこれが行われたようなことを聞​​いていたのだろうかと疑問に思ったのですか?

答えて

10

私はこれでいくつかの運を持っていました。私はthis simple Direct3D exampleをコンパイルすることができました。

私はこれにwinelibを使用しました(Ubuntuのwine-devパッケージ)。私にwinelibを指摘してくれたalastairに感謝します。

ソースを少し変更してwcharsをcharsに変換しました(1行52行、2行55行、文字列リテラルの前のLを削除します)。これの周りに道があるかもしれませんが、これはそれを稼働させて実行しています。

私は、次でソースをコンパイル:

wineg++ -ld3d9 -ld3dx9 triangle.cpp 

これはa.out.exe.soバイナリだけでなく、ワインの下でそれを実行するためのa.outスクリプトを生成します。

0

現在、DirectXコードをコンパイルして直接Linuxをターゲットにする方法はありません。通常と同じようにアプリケーションを構築し、Wine/Cedegaのような互換レイヤーを使って実行します。

4

これは移植についてではなく作成したものではない場合、OpenGLはDirectXと同じくらい強力で、MacやLinuxに移植するのがずっと簡単です。

あなたの要件がわからないので、それをよく言及してください。

0

Wineは、それが基本的に通話interdictor /翻訳者ではなく、あなたがにフックすることができますライブラリのセットだとして、あなたがワインにリンクすることはできませんLinuxの

2

ではDirectXを実行するための唯一の方法です。もしlinuxが重要であればOpenGL/SDL/OpenALになります。

0

Linuxでdirectxアプリケーションをコンパイルすることはできますが、すぐに起動することはできません。 ウィンドウズexeを作成し、ウィンドウsdkとdirectx sdkを指すクロスコンパイラを使用する場合。

2

私はwinelibに対してLinuxバイナリをコンパイルできると信じています。つまり、Linuxの実行可能ファイルと同じように動作しますが、Windowsライブラリを使用します。

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

+0

はい、これは私が質問したときに考えていたものです。私はさらに調査します。 – Nick

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のを命名していることを確認してください。

関連する問題