Nah, jika Anda menginginkan file itu selama runtime, saya sarankan Anda membuatnya selama runtime. Makefile dianggap hanya selama waktu kompilasi. Ini jelas menjadi masalah jika program dikompilasi dan kemudian dijalankan oleh pengguna yang berbeda, beberapa di antaranya bahkan mungkin tidak ada pada waktu kompilasi.
Selama runtime Anda bisa mendapatkan direktori home seperti yang ditunjukkan di sini (jika Anda menggunakan C/C++). Kemudian Anda dapat memeriksa keberadaan folder/file skor tinggi dan membuatnya jika perlu. Jika Anda menginginkan file highscore untuk semua pengguna, Anda harus meletakkannya di direktori home dari pengguna khusus, melainkan di tempat lain di sistem file. Ini misalnya dilakukan oleh game xjump.
Dan tentang Makefile Anda, variabel $USER diterjemahkan ke root karena sudo perintah pada
sudo buat instal
Pengguna yang sebenarnya menjalankan make adalah superuser:root.
Anda ingin menginstal program Anda untuk setiap pengguna? Jadi lebih baik jika Anda membuat /home/user/.game_name direktori saat pengguna menjalankan game, bukan saat root menginstalnya. Sebaliknya, hanya pengguna yang memanggil sudo make install
akan memiliki daftar skor tertinggi. Jika Anda hanya memiliki satu pengguna, jangan menginstalnya di seluruh sistem, tetapi di direktori pengguna.
Saya menyarankan untuk menginisialisasi file pengguna pada permainan pertama kali dijalankan. Jadi setiap pengguna, bahkan pengguna yang tidak ada saat game diinstal, dapat memiliki daftar skor tertinggi mereka. Anda dapat menambahkan kode inisialisasi ke dalam gim Anda (c++, java, atau apa pun) atau cukup panggil skrip eksternal yang melakukannya (tidak terlalu elegan). Hindari untuk membuat file terkait pengguna pada waktu penginstalan.