首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >包括在Qt项目中使用CMake和Gnu时出现的问题

包括在Qt项目中使用CMake和Gnu时出现的问题
EN

Stack Overflow用户
提问于 2009-08-25 13:50:53
回答 2查看 1.3K关注 0票数 1

我正在开始一个多平台(Win Xp,Linux) qt项目。我想使用一个源代码外的构建,所以我的目录结构如下:

代码语言:javascript
运行
复制
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或Windows上使用相同的结构和CMakeLists以及MinGW生成器,我会得到编译错误,因为位于build目录下的qt生成的文件(通过moc和uic)在我的子项目中找不到我的头文件。一些qt生成的头文件/源文件依赖于我的头文件/源文件,因为我在.ui文件中使用了提升的小部件,这些小部件指向源代码中的实现。同样,在Visual Studio / NMake下,一切编译正常。

作为一种变通方法,我可以使用运行良好的源代码构建,也可以在全局CMakeLists.txt上添加以下内容:

代码语言:javascript
运行
复制
include_directories(
  mystuff/subprojectA
  mystuff/subprojectB
)

但是什么才是正确的解决方案呢?非常感谢!

EN

Stack Overflow用户

发布于 2009-11-17 05:46:11

在我正在处理的一个项目中,我使用以下语句来处理CMakeLists.txt中的includes:

代码语言:javascript
运行
复制
 include_directories(${CMAKE_CURRENT_BINARY_DIR} ${QT_INCLUDES} ${OPENSSL_INCLUDE_DIR})

关键字是${CMAKE_CURRENT_BINARY_DIR},希望能有所帮助。

附注,如果你使用的是启用了异常的gcc 4.4.x,你可能会想要使用它,这样它就不会链接到windows上的libgcc_s_sjlj-1.dll。

代码语言:javascript
运行
复制
 SET(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "-static-libgcc")
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1328410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档