実行時にそのファイルが必要な場合は、実行時に作成することをお勧めします。 Makefile は、コンパイル時にのみ考慮されます。プログラムがコンパイルされ、別のユーザーによって実行された場合、これは明らかに問題であり、コンパイル時に存在しないユーザーもいます。
実行時に、ここに示すようにホーム ディレクトリを取得できます (C/C++ を使用している場合)。次に、ハイスコア フォルダー/ファイルの存在を確認し、必要に応じて作成できます。すべてのユーザーのハイスコア ファイルが必要な場合は、それを特別なユーザーのホーム ディレクトリに配置する必要がありますが、ファイル システムの別の場所に配置する必要があります。これは、たとえばゲーム xjump によって行われます。
Makefile については、sudo のために $USER 変数がルートに変換されます。 コマンド
<ブロック引用>sudo make install
実際に make を実行しているユーザーは、スーパーユーザーである root です。
すべてのユーザーにプログラムをインストールしますか?したがって、/home/user/.game_name を作成したほうがよいでしょう root がゲームをインストールするときではなく、ユーザーがゲームを実行するときのディレクトリ。それ以外の場合は、sudo make install
を呼び出したユーザーのみ ハイスコアリストが表示されます。ユーザーが 1 人しかいない場合は、システム全体ではなく、ユーザー ディレクトリにインストールしてください。
users ファイルを初期化することをお勧めします ゲームの最初の実行時。したがって、すべてのユーザーは、ゲームがインストールされたときに存在していなかったユーザーも含めて、ハイスコア リストを持つことができます。初期化コードをゲームに追加するか (C++、Java など)、それを実行する外部スクリプトを呼び出すことができます (あまりエレガントではありません)。インストール時にユーザー関連のファイルを作成しないでください。