私が行っている夏のプロジェクトのシミュレーションを実行するように設計された C++ のプログラムがあります。これはかなり計算量が多いですが、クラスター コンピューターのリソースを使用して実行する許可を得ていますが、自分のラップトップでテストして開発しています。このプログラムは出力としてテキスト ファイルを生成しますが、ここで問題が発生します。
自分のコンピューターでプログラムを実行しているか、クラスター コンピューターでプログラムを実行しているかに応じて、テキスト ファイルを異なるパスに保存する必要があります。今のところの私の解決策は$(shell hostname)
、コードがコンパイルされているマシンを確認するためにメイクファイルで使用し、その出力から、メイクファイルでその操作から定義されたマクロで条件付きコンパイルを使用することでした。かつて、コンピューターとクラスターで異なるマクロを定義した 2 つの異なるバージョンのヘッダーを使用していましたが、git リポジトリを使用して変更をやり取りしていて、1 つのファイルを除外するのに非常に苦労していました。このような。
同じソースを持つ異なるコンピューターでコンパイル時にパスを設定するための最も好ましい方法は何だろうと思っていました。