2016-08-12 24 views
0

LinuxにOpenCVライブラリをインストールします。私は、コマンドを実行する場合:Linux MAKEFILEアクセス環境変数

echo $(pkg-config --libs opencv) 

結果は以下の通りです: enter image description here

しかし、私はこのようにMAKEFILEからそれを実行する場合:

all: 
    @echo 1 
    @echo $(pkg-config --libs opencv) 
    @echo 2 

何もプリントアウトは何が起こった、ではありませんか? enter image description here

+1

スクリーンショットを使用する代わりに、端末コマンドと出力をコピーして貼り付けてください。 – Cornstalks

答えて

3

あなたのシェルコマンドでshellを忘れてしまった:https://www.gnu.org/software/make/manual/html_node/Shell-Function.html

はこれを試してみてください。それで

@echo $(shell pkg-config --libs opencv) 

を、あなたはpkg-config(またはそのような何か)という名前の変数の値を印刷しました。

1

makeはシェルではなく、構文が異なります。あなたは、おそらくこのように、シェルでpkg-configを実行した結果をエコーMakefileを持つようにしたい:

all: 
    @echo 1 
    @echo $(shell pkg-config --libs opencv) 
    @echo 2 
0

これを行うための最も簡単かつ正しい方法は

all: 
    @echo $$(pkg-config --libs opencv) 

あるshellメイク機能を使用すると、不必要であるといOPコードで何が間違っているのかを実際には修正しないでください。