2012-03-21 33 views
0

我對scons使用qt4工具,並遇到一些問題導致.ui文件被正確處理。 我來自Cmake背景,Qt和scons初學者。qt4 scons在variant_dir中包含一個uic文件

在我SConstruct文件我有

env.Uic4(Glob('*.ui')) 
env.Program('test',Glob('*.cpp')) 

的問題是,我的源文件無法找到導致頭文件src/qt-test/sample_widget.cpp:3:23: error: ui_sample.h: No such file or directory。頭文件創建,因爲所有moc處理完成,因此我很確定一切安裝正確,基本正確。

我認爲正在發生的是因爲這是一個recrusive SConstruct文件,並且調用者正在使用variant_dir進行構建。所以可能的問題是讓編譯器解析構建目錄中的頭文件(可能與qt4工具無關)。這在CMake中自動處理(我認爲)。

那麼我如何得到這個工作(得到ui包含文件被發現)?

+0

你從哪裏得到了Qt4實施?我有興趣做一些QT4開發,並發現這一點:https://bitbucket.org/dirkbaechle/scons_qt4這似乎是最新的。 – Brady 2012-04-25 10:49:54

+0

@布雷迪,我相信那是我的。 – 2012-04-25 12:28:20

回答

0

使用CPPPATH建設變量設置包括如手冊頁提及的路徑:

http://scons.org/doc/production/HTML/scons-user/a4916.html

例如:

env.Append(CPPPATH = ['dir1', 'dir2']) 

布雷迪

+0

問題出在這個文件裏,我不知道這個目錄是什麼,一些父SConstruct文件設置了變體目錄。父文件也不能簡單地將每個輸出目錄添加到路徑中。 – 2012-03-21 14:11:46

+0

根據uons()的SCons手冊頁描述:'從ui文件構建一個頭文件,一個實現文件和一個moc文件。並按照以上順序返回相應的節點。' 所以你應該能夠使用返回的節點來獲取路徑。或者將頭文件節點傳遞給上述的CPPPATH語句。 – Brady 2012-03-21 14:28:09

+0

關於我的最後一條評論的一個澄清:在傳遞給CPPPATH時,您不得不在傳遞頭文件節點時調用該特定節點上的abspath()函數 – Brady 2012-03-21 14:37:51

相關問題