[解決済み] Makefileの$PATHにdirを追加するには?
2022-11-17 13:27:11
質問
テストを実行するMakefileを書きたいのです。テストは'./tests'ディレクトリにあり、テストされる実行ファイルは'./bin'ディレクトリにあります。
テストを実行すると、ディレクトリ ./bin が $PATH に含まれていないため、実行ファイルが見えません。
私がこのようなことをするとき
EXPORT PATH=bin:$PATH
make test
で、すべてうまくいきました。しかし、私はMakefileの$PATHを変更する必要があります。
シンプルなMakefileの内容です。
test all:
PATH=bin:${PATH}
@echo $(PATH)
x
パスは正しく表示されますが、ファイルxは見つかりません。
これを手動でやると
$ export PATH=bin:$PATH
$ x
であれば、すべてOKです。
Makefileの$PATHを変更するにはどうしたらよいでしょうか?
どのように解決するのですか?
あなたは、試しましたか?
export
ディレクティブ
というディレクティブはありますか?
export PATH := bin:$(PATH)
test all:
x
また、この例にはバグがあります。
test all:
PATH=bin:${PATH}
@echo $(PATH)
x
まず、値が
echo
を拡張したものです。
PATH
という変数がシェルではなく、Make によって実行されます。もし期待通りの値が表示されるのであれば、あなたが設定した
PATH
を設定したのでしょう。このような動作を防ぐには、ドルをエスケープする必要があります。
test all:
PATH=bin:$$PATH
@echo $$PATH
x
次に、どのような場合でも、Make はレシピのそれぞれの行を 別のシェル . これはレシピを一行で書くことで変更できます。
test all:
export PATH=bin:$$PATH; echo $$PATH; x
関連
-
[解決済み】makefile:4。*** missing separator. 停止する
-
[解決済み】Makefileの中の.PHONYの目的は何ですか?
-
Process.waitFor()の戻り値の意味するところ
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] ワイルドカードマッチングに基づいて、現在のフォルダとサブフォルダ内のすべてのファイルを再帰的に検索するにはどうすればよいですか?
-
[解決済み] Linux上で動作するC++コードのプロファイリングを行うにはどうすればよいですか?
-
[解決済み] エクスポートされた環境変数を削除する方法を教えてください。
-
[解決済み] すべてのディレクトリとサブディレクトリを再帰的にgrepするにはどうしたらいいですか?
-
[解決済み] GNU Makefile の変数割り当て =, ?=, :=, += の違いは何ですか?
-
[解決済み] 別のMakefileからMakefileを呼び出すには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
centos7 インストール クリックハウスとセット ユーザー名 パスワード ケース 詳細
-
Linuxのデスクトップの背景を画像で引き伸ばし表示にする方法とは?
-
deepin linuxからmacosx仮想マシンに直接ファイルをドラッグ&ドロップする方法は?
-
deepin linuxでroot権限に切り替えるには?Deepinでrootに切り替えるためのヒント
-
deepin depth systemはどのような内容でアップデートされましたか?deepinの最新版アップデート内容まとめ
-
deepin20のソフトをアンインストールする方法を教えてください。deepinのアプリケーションをアンインストールする2つの方法
-
TclError: 表示名がなく、$DISPLAY環境変数もない。
-
Centos7 dns service named installation, encountered ** server can't find xxx.com: NXDOMAIN問題
-
[解決済み] 出力をファイルや標準出力にリダイレクトする方法
-
[解決済み] 特定のファイル/フォルダを除外してディレクトリをtarするシェルコマンド