2012-03-21 35 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

相关问题