2012-02-25 7 views
2

ここに私の問題があります: 私のqmakeスクリプトで私のopencvのバージョンを検出し、その結果をCONFIG変数に保存します。私は結果をこの形式にする必要があります: "opencv20"、 "opencv21"、 "opencv22"など。 私はbashのコマンドを呼び出すと、このようなものを使用していたためにシステム()関数を使用することができることを知っている:qmakeスクリプトでsedを呼び出す

CONFIG += opencv$$system(pkg-config --modversion opencv | cut -d. -f'1,2' | sed 's/\.//g') 

それは私の端末では正常に動作しますが、qmakeのは私に与えます「opencv2を。」私は出力を印刷しようとします。 pkg-configの出力とcutコマンドだけが正しいので、sedコールが何らかの理由でqmakeを混乱させていると仮定します...任意のヒント?

答えて

2

system()コマンドはサブシェルで実行されます。あなたの弦をエスケープする必要があります:

CONFIG += opencv$$system(pkg-config --modversion opencv | cut -d . -f \'1,2\' | sed \'s/\.//g\') 
関連する問題