【如何写CMake】一个解决方案,多个工程

文章目录


一个解决方案,多个工程,即多个exe/dll/lib等

代码

多加几个ADD_EXECUTABLE即可

#1.cmake verson,指定cmake版本
cmake_minimum_required(VERSION 3.2)

#2.project name,指定项目的名称,一般和项目的文件夹名称对应
PROJECT(chapter2)

#3.head file path,头文件目录
INCLUDE_DIRECTORIES(
include
)

#4.source directory,源文件目录
AUX_SOURCE_DIRECTORY(src DIR_SRCS)

#5.set environment variable,设置环境变量,编译用到的源文件全部都要放到这里,否则编译能够通过,但是执行的时候会出现各种问题,比如"symbol lookup error xxxxx , undefined symbol"
SET(TEST_MATH
${DIR_SRCS}
2.01.nullptr.cpp
)

#6.add executable file,添加要编译的可执行文件
ADD_EXECUTABLE(nullptr 2.01.nullptr.cpp)
ADD_EXECUTABLE(constexpr 2.02.constexpr.cpp)

#7.add link library,添加可执行文件所需要的库,比如我们用到了libm.so(命名规则:lib+name+.so),就添加该库的名称
#TARGET_LINK_LIBRARIES(${PROJECT_NAME} m)

参考

[1]Cmake之CMakeLists.txt
[2]Cmake知识----编写CMakeLists.txt文件编译C/C++程序

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个基于 CMake 的 QML 3D 实例工程,您可以在其中学习如何使用 CMake构建 QML 3D 应用程序。 首先,我们需要在 CMakeLists.txt 文件中包含 Qt 3D 模块。您可以通过以下代码行来实现: ``` find_package(Qt5 COMPONENTS Core Quick 3DCore 3DRender 3DInput REQUIRED) ``` 接下来,我们可以创建一个 main.qml 文件,在其中添加以下代码: ```qml import Qt3D.Core 2.0 import Qt3D.Render 2.0 import Qt3D.Input 2.0 import QtQuick 2.12 import QtQuick.Window 2.12 import QtQuick.Controls 2.12 import QtQuick.Layouts 1.12 Window { visible: true width: 640 height: 480 title: "QML 3D Example" Entity { id: rootEntity components: [ Transform { translation: Qt.vector3d(0, 0, -10) }, Camera { id: camera projectionType: CameraLens.PerspectiveProjection fieldOfView: 45 aspectRatio: 1.0 nearPlane: 0.1 farPlane: 1000.0 position: Qt.vector3d(0, 0, 20) upVector: Qt.vector3d(0, 1, 0) viewCenter: Qt.vector3d(0, 0, 0) } ] BoxMesh { id: boxMesh xExtent: 2.0 yExtent: 2.0 zExtent: 2.0 } Material { id: material diffuse: "qrc:/textures/wood.jpg" } PhongMaterial { id: phongMaterial ambient: "white" diffuse: "white" specular: "white" shininess: 100 } components: [ boxMesh, material, phongMaterial ] } } ``` 在此示例中,我们创建了一个 `Window`,并向其中添加了一个 `Entity`,它包含一个 `BoxMesh`、`Material` 和 `PhongMaterial` 组件。我们还添加了一个 `Camera` 组件,以便可以从不同的角度查看场景。 在这个示例中,我们使用了一个 `BoxMesh`,它是一个简单的立方体。我们还使用了一个 `Material` 来设置立方体的纹理,以及一个 `PhongMaterial` 来设置光照效果。 此外,我们还在 `Transform` 组件中设置了立方体的位置,以便将其移动到屏幕中心。 在这个示例中,我们还使用了一个 wood.jpg 纹理,您可以将其添加到您的项目中,以便在立方体上显示纹理。 完整的 CMakeLists.txt 文件如下: ``` cmake_minimum_required(VERSION 3.5) project(QML3DExample LANGUAGES CXX) find_package(Qt5 COMPONENTS Core Quick 3DCore 3DRender 3DInput REQUIRED) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) add_executable(${PROJECT_NAME} "main.cpp" "main.qml" "qrc.qrc" ) target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11) target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Quick Qt5::3DCore Qt5::3DRender Qt5::3DInput) ``` 希望这个示例对您有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值