zoukankan      html  css  js  c++  java
  • 【C++/Qt】CMake多文件编译

    利用cmake分别在Linux和Windows下的编译流程在上一篇文章中已经提及,本篇便来说一下CMake文档的撰写。

    本篇文章涉及的文件路径如下:

    #cmake版本
    CMAKE_MINIMUM_REQUIRED(VERSION 3.5.1)
    
    #项目名称
    PROJECT(Iterator)
    
    #让cmake自动去寻找Qt5
    FIND_PACKAGE(Qt5 COMPONENTS Widgets REQUIRED)
    
    #采用C++11标准
    SET(CMAKE_CXX_STANDARD 11)
    
    # 查找当前目录下的所有源文件
    # 并将名称保存到 DIR_SRCS 变量
    AUX_SOURCE_DIRECTORY(. DIR_SRCS)
    # 添加头文件路径
    INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}" ./IteratorFunction ./IteratorWidget)
    
    #添加所有的源文件
    #####注意,这里文件路径要按照实际路径撰写,其中CMakeLists.txt为起点##### SET(Iterator_SOURCES main.cpp IteratorWidget
    /IteratorWidget.cpp IteratorFunction/IteratorFunction.cpp IteratorFunction/Aitken.cpp IteratorFunction/NewtonOriginal.cpp IteratorFunction/NewtonDownhill.cpp IteratorFunction/OnePoint.cpp IteratorFunction/TwoPoint.cpp ) #添加所有的头文件 SET(Iterator_HEADERS IteratorWidget/IteratorWidget.h IteratorFunction/IteratorFunction.h IteratorFunction/Aitken.h IteratorFunction/NewtonOriginal.h IteratorFunction/NewtonDownhill.h IteratorFunction/OnePoint.h IteratorFunction/TwoPoint.h ) #调用预编译器moc,需要使用 QT5_WRAP_CPP宏 QT5_WRAP_CPP(Iterator_HEADERS_MOC ${Iterator_HEADERS}) #这些生成的中间文件都会在build目录下,这样的话,编译器则不能定位由uic程序产生的诸如_ui_mainwindow.h等文件。所以,我们需要把build目录添加到包含目录中 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) #生成可执行文件 ADD_EXECUTABLE(Iterator ${Iterator_SOURCES} ${Iterator_HEADERS_MOC} ) #为target添加需要链接的共享库 TARGET_LINK_LIBRARIES(Iterator ${Qt5Widgets_LIBRARIES})
  • 相关阅读:
    redis介绍;特性介绍
    日常2018/4/9---b/s和c/s架构分别是什么?区别?
    持续集成实践---基于ant+jmeter+jenkins接口CI
    面向过程 和 面向对象个人理解
    记一次vc++6.0中程序正常,转 vs2019 c++后报错的问题
    C# 调用C++ dll EntryPointNotFoundException错误
    uniapp踩坑记录(持续更新)
    uniapp引用组件rate评分无法点击引起对style scoped学习
    sql server之time字段详解
    sql server之timestamp字段详解(转)
  • 原文地址:https://www.cnblogs.com/fighterkaka22/p/14044080.html
Copyright © 2011-2022 走看看