项目代码架构

简介: 在project目录下的树结构如下: 1 root@u18:~/cp/project# tree 2 . 3 ├── 3rd_lib      //存放 第三方库 的目录 4 │   ├── libvirt-lxc.

在project目录下的树结构如下:

 1 root@u18:~/cp/project# tree
 2 .
 3 ├── 3rd_lib      //存放 第三方库 的目录
 4 │   ├── libvirt-lxc.so
 5 │   ├── libvirt-qemu.so
 6 │   └── libvirt.so
 7 ├── build       //执行Cmake ..的目录
 8 ├── CMakeLists.txt
 9 ├── include     //头文件目录
10 │   └── libvirt
11 │       ├── libvirt-domain.h
12 │       ├── libvirt-domain-snapshot.h
13 │       ├── libvirt-event.h
14 │       ├── libvirt.h
15 │       ├── libvirt-host.h
16 │       ├── libvirt-interface.h
17 │       ├── libvirt-lxc.h
18 │       ├── libvirt-network.h
19 │       ├── libvirt-nodedev.h
20 │       ├── libvirt-nwfilter.h
21 │       ├── libvirt-qemu.h
22 │       ├── libvirt-secret.h
23 │       ├── libvirt-storage.h
24 │       ├── libvirt-stream.h
25 │       └── virterror.h
26 └── src      //代码目录
27     ├── LibvirtConfig.h
28     ├── LibvirtConfig.h.in
29     ├── libvirt.cpp
30     └── Libvirt.h.in
31 
32 5 directories, 23 files

  CMakeList文件内容如下:

 1 cmake_minimum_required (VERSION 2.6)
 2 
 3 #PROJECT(projectname [CXX] [C] [Java])  编译语言
 4 project (Libvirt CXX)
 5 
 6 #The version number
 7 set (Libvirt_VERSION_MAJOR 1)
 8 set (Libvirt_VERSION_MINOR 0)
 9 
10 #configure a header file to pass some of  the source code
11 configure_file (
12     "${PROJECT_SOURCE_DIR}/src/LibvirtConfig.h.in"
13     "${PROJECT_BINARY_DIR}/src/LibvirtConfig.h"
14     )
15 
16 # equal to echo in shell
17 MESSAGE(STATUS "This is source dir: " ${PROJECT_SOURCE_DIR})
18 MESSAGE(STATUS "This is binary dir: " ${PROJECT_BINARY_DIR})
19 
20 #add sub dir  and find CMakeList.txt in the sub dir, done it
21 #ADD_SUBDIRECTORY(subdir)
22 
23 #将一个文件下的编译用的源文件添加到一个宏列表中
24 #AUX_SOURCE_DIRECTORY(. SRC_LIST)
25 #只将.cc .cpp .c 的文件添加到SRC_LIST中,.h除外
26 
27 
28 #将.h文件也添加进来,使用
29 INCLUDE_DIRECTORIES("${PROJECT_BINARY_DIR}/src")
30 FILE(GLOB_RECURSE SOURCE_FILE ./src/*.cpp  ./src/*.c)
31 FILE(GLOB_RECURSE HEADER_FILE *.h  *.hpp)
32 
33 MESSAGE(STATUS "This is source dir: " ${SOURCE_FILE})
34 #MESSAGE(STATUS "This is header dir: " ${HEADER_FILE})
35 #add the binary tree to the search path for include files so that we will find LibvirtConfig.h
36 #include_directories ("${PROJECT_BINARY_DIR}/src", "${PROJECT_BINARY_DIR}/INCLUDE/libvirt")
37 
38 #add the 3rd_lib
39 #link_directories("${PROJECT_BINARY_DIR}/3rd_Lib")  
40 FILE(GLOB_RECURSE LIB_FILE libvirt.so*)
41 
42 MESSAGE(STATUS "This is 3rd_lib file : " ${LIB_FILE})
43 
44 #add the executable
45 add_executable(Libvirt ${SOURCE_FILE})
46 
47 #link 
48 TARGET_LINK_LIBRARIES(Libvirt ${LIB_FILE})

操作步骤:

  1、进入build目录,执行cmake .. (因为CMakelist文件在上一级目录中),生成Makefile文件

  2、执行make即可

 

相关文章
|
2月前
|
数据采集 机器学习/深度学习 大数据
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
这篇文章详细介绍了C3D架构在行为检测领域的应用,包括训练和测试步骤,使用UCF101数据集进行演示。
46 1
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
|
2月前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
109 2
|
23天前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
在 Android 开发中,选择合适的架构模式对于构建中大型项目至关重要。常见的架构模式有 MVVM、MVP、MVI、Clean Architecture 和 Flux/Redux。每种模式都有其优缺点和适用场景,例如 MVVM 适用于复杂 UI 状态和频繁更新,而 Clean Architecture 适合大型项目和多平台开发。选择合适的架构应考虑项目需求、团队熟悉度和可维护性。
49 6
|
23天前
|
存储 前端开发 数据可视化
在实际项目中,如何选择使用 Flux 架构或传统的 MVC 架构
在实际项目中选择使用Flux架构或传统MVC架构时,需考虑项目复杂度、团队熟悉度和性能需求。Flux适合大型、高并发应用,MVC则适用于中小型、逻辑简单的项目。
|
1月前
|
存储 安全 Java
系统安全架构的深度解析与实践:Java代码实现
【11月更文挑战第1天】系统安全架构是保护信息系统免受各种威胁和攻击的关键。作为系统架构师,设计一套完善的系统安全架构不仅需要对各种安全威胁有深入理解,还需要熟练掌握各种安全技术和工具。
83 10
|
2月前
|
机器学习/深度学习 网络架构 计算机视觉
目标检测笔记(一):不同模型的网络架构介绍和代码
这篇文章介绍了ShuffleNetV2网络架构及其代码实现,包括模型结构、代码细节和不同版本的模型。ShuffleNetV2是一个高效的卷积神经网络,适用于深度学习中的目标检测任务。
75 1
目标检测笔记(一):不同模型的网络架构介绍和代码
|
2月前
|
前端开发 JavaScript 测试技术
Android适合构建中大型项目的架构模式全面对比
Android适合构建中大型项目的架构模式全面对比
46 2
|
2月前
|
存储 分布式计算 Hadoop
Hadoop-33 HBase 初识简介 项目简介 整体架构 HMaster HRegionServer Region
Hadoop-33 HBase 初识简介 项目简介 整体架构 HMaster HRegionServer Region
53 2
|
3月前
|
负载均衡 数据库 开发工具
|
3月前
|
Java 数据库 Maven
谷粒商城笔记+踩坑(1)——架构、项目环境搭建、代码生成器
项目介绍、项目环境搭建、docker配置mysql,redis,jdk,maven、人人开源、快速开发、安装nodejs、逆向工程搭建,人人开源代码生成器
谷粒商城笔记+踩坑(1)——架构、项目环境搭建、代码生成器
下一篇
无影云桌面