これは簡単な質問だと思いますが、どうやってそれを行うのか分かりません。私はWindows上でコンパイルして実行しているC++プロジェクトを持っていますが、私が使用しているNiTE2ライブラリの問題が発生しています。 NiTE2がセットアップに必要な特定の機能を呼び出すと、 "./NiTE2/s.dat"にある "s.dat"ファイルが検索されます。問題は、Visual Studio環境で "。\ NiTE2/s.dat"というパスを検索しようとするときです。それはスラッシュをミックスするタイプミスではありません。プログラムが必要なファイルを見つけられないことがあります。しかし私がGit Bashの下で自分のプログラムを実行すると、うまく実行されます。Visual Studioのファイル名
Git Bashを使うと、デバッグが非常に難しくなります.Windowsのデフォルトのバックスラッシュの代わりにスラッシュを使用するようにVisual Studioのランタイム環境を取得することは可能ですか? "s.dat"がどこにあるかを定義するパスは、私が解決できないように編集できない独自のコードに埋め込まれています。
サイドノート:とにかく役立つ場合は、Windows 10を実行しています。私はVSCodeを使ってbashデバッグをしようとしていますが、現時点ではうまくいっていません。
スラッシュを混ぜることは、Windows上でうまく動作します。ファイルを見つけることができないのは当然のことですが、デフォルトの作業ディレクトリは可能な限り最悪のグローバル変数です。相対パスを使用しないで、プログラムのインストールディレクトリから完全なパスを作成して、どこに置いても動作し、設定にまったく依存しないようにしてください。 –
@HansPassant私は、相対的なパス設定は私のコードで絶対パスを使用するのは難しいアイデアだと私は同意しますが、私が言及したように、コードのその部分を変更することはできません。これはNiTE2ライブラリの中に埋め込まれています。最終的にコンパイルされたバージョンしかありません。ビジュアルスタジオ環境でファイルを見つけられないという不満があるのに、git bashとコマンドプロンプトでうまくいく理由は何ですか? – Wired365
さて、獣に餌を与え、食べたいものを与えてください。明示的にコード内の作業ディレクトリを設定して、常に正しいことを確認します。 SetCurrentDirectory()または '_chdir()'を使用してください。 –