2013-10-30 36 views
0

我正在嘗試構建一個使用boost二進制庫的qt項目。我希望將libs路徑從.sh腳本傳遞到qmake並在.pro文件中擴展。 所以我有這個.pro文件:如何將.sh腳本中的變量傳遞給qmake?

TEMPLATE = app 
CONFIG += console 
CONFIG -= qt 

SOURCES += main.cpp 

message("Master pro file path : ["$$[BOOST_LIBS_PATH]"]") 

LIBS += -L$$[BOOST_LIBS_PATH] 

和腳本文件運行QMAKE:

BOOST_LIBS_PATH=/path/to/boost 

echo $BOOST_LIBS_PATH 

qmake-qt4 qt_test_proj.pro -r -spec linux-g++ 

但在complie輸出我收到

Project MESSAGE: boost libs path : [] 

所以BOOST_LIBS_PATH.pro文件仍然是空的。

+0

如果它是作爲make命令,然後'QMAKE-QT4 qt_test_proj.pro -r -spec的linux-G ++ BOOST_LIBS_PATH = /路徑/要/ boost'應該工作。 –

+0

如果用'$$ {}' –

+0

替換'$$ []',那該怎麼辦!我在.pro文件中將腳本中的'qmake-qt4 qt_test_proj.pro -r -spec linux-g ++ BOOST_LIBS_PATH =/path/to/boost'和'$$ []''更改爲'$$ {}'。 非常感謝! – kopalvich

回答

2

我認爲你可以通過一個環境變量的路徑,但你不設置任何。我會以下面的方式做。

在腳本文件

export BOOST_LIBS_PATH="/path/to/boost" 
echo $BOOST_LIBS_PATH 

的Qt文檔說

當時獲得的環境值的內容時,處理生成的Makefile文件,使用$(... )運營商。

所以在項目文件

# Note the usage of $() operator. 
message("Master pro file path : ["$(BOOST_LIBS_PATH)"]") 
[..] 
LIBS += -L$(BOOST_LIBS_PATH]) 
+0

非常感謝,這很有用! – kopalvich

相關問題