我正在启动一个多平台(Win Xp,Linux)qt项目。我想用一个彻头彻尾的源码编译的,所以我的目录结构如下:在Qt项目中使用CMake与Gnu时包含问题
project/
CMakeLists.txt (global CMake file, includes other CMakeLists)
build/ (my build directory)
libA/
CMakeLists.txt
mystuff/
subprojectA/
CMakeLists.txt
subprojectB/
CMakeLists.txt
所以,当我使用Windows上与Visual Studio生成一切建立精细。 如果我在Linux上或使用MinGW生成器在Windows下使用相同的结构和CMakeLists,我会收到编译错误,因为位于构建目录下的qt生成的文件(通过moc和uic)无法在我的子项目中找到我的头文件。一些qt生成的头文件/源文件依赖于我的头文件/源文件,因为我在我的源文件中使用了指向实现的.ui文件中的提升小部件。再次在Visual Studio/NMake下编译好。
作为一种变通方法,我可以用一个在源代码编译它运行罚款或我可以添加对全球的CMakeLists.txt如下:
include_directories(
mystuff/subprojectA
mystuff/subprojectB
)
但是,什么是正确的解决方案?非常感谢你!!
嘿酷适合我!不是完美的答案,而是一个很好的解决方法,谢谢! – 2009-08-26 08:18:23