このパスでコードをコンパイル/home/m/ChatScript-master/SRC
し、実行可能ファイルを作成しましたmyapp
。
SRC
たとえば、フォルダ内で実行できます。ただし、フォルダ内で./myapp
実行しようとすると、次の結果が表示されます。/home/m/ChatScript-master/SRC/myapp
/home/m
in cs_init.txt at 0:
Error opening utf8writeappend file LOGS/startlog.txt: No such file or directory
このエラーメッセージが表示されるのはなぜですか?
私の主な問題は、キオスクなどのシステムを構築し、その中に実行可能ファイルを追加したいということです/home/m/.config/openbox/autostart
。
$ cat /home/m/.config/openbox/autostart
echo 7 > /tmp/yy
/home/m/ChatScript-master/SRC/myapp &
echo 8 > /tmp/yy2
しかし、動作しません!他のプログラムでもこれを行うことができましたが、このプログラムではこのエラーが発生します。
ChatScript-master
注:たとえば、ディレクトリにはいくつかのフォルダがあり、私の実行可能ファイルSRC
はフォルダ内にLOGS
あります。SRC
答え1
プログラムは現在の作業ディレクトリへの相対パスを使用してアクセスしますLOGS/startlog.txt
。LOGS
現在のディレクトリにディレクトリがない場合、アプリケーションは失敗します。
この問題を解決するには、アプリケーションが絶対パスを使用してファイルにアクセスしていることを確認するか、アプリケーションの起動時に作業ディレクトリを変更してください。
( cd /home/m/ChatScript-master/SRC && ./myapp ) &
.../home/m/ChatScript-master/SRC
必要なLOGS
ディレクトリが含まれているとします。