1

私はゲーム用のOpenGLを使用したクロスプラットフォーム開発について読んでいます。Linuxユーザーも利用できるゲームの開発を検討しています。しかし、私は頭を動かしていない何かに出くわしました。

ポータブルLinux実行可能ファイルを作成するにはどうすればよいですか?具体的には、OpenGL / Mesa3Dのさまざまなバージョンを1つ(または複数)の実行可能ファイルで動作させる方法(ソースを配布したくない)。

Linuxに関する質問http://www.linuxquestions.org/questions/linux-software-2/hardware-acceleration-using-opengl-and-x11-876634/誰かがMesa3D/OpenGLのしくみについて詳しく説明しますが、私は何をしますかコンパイルされた実行可能ファイル内で各ディストリビューションのバージョンのMesa3Dをどのように使用するかを確認するのに苦労しています(それが可能かどうかさえわかりません)。

私が言えることから、おそらくインストーラーを使用して、各ユーザーのマシンでアプリケーションの一部を動的にリンクする必要がありますか?この場合、OpenGLのdllがWindowsで実行できるのと同じように、実行時にMesa3D / OpenGLのプログラムとリンクを部分的にコンパイルできますか?

4

1 に答える 1

1

実行可能ファイルを動的にリンクするだけlibGL.soで完了です。そのバイナリ インターフェイスは、OpenGL のすべての実装で共通です。

おそらくインストーラーを使用して、各ユーザーのマシンでアプリケーションの一部を動的にリンクする必要があると言えますか?

リンクを行うのではなく、インストーラーも行いません。動的リンクは、実行可能ファイルがロードされると自動的に行われます。動的リンクは、DLL が Windows に読み込まれる方法と、*nix.so上の *nix 対応の共有オブジェクト ( ) です。

プログラムをビルドするとき-lGLに、リンカー コマンド ラインにオプションを追加すると、動的リンケージ エントリが実行可能ファイルに追加さlibGL.soれます。その後、再配布できます。プログラムがターゲット システムで開始されると、ダイナミック リンカは libGL.so を見つけてロードします。

于 2012-07-17T23:39:17.997 に答える