zoukankan      html  css  js  c++  java
  • 项目代码架构

    在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即可

  • 相关阅读:
    Entity Framework 学习中级篇3—存储过程(中)
    Entity Framework 学习高级篇1—改善EF代码的方法(上)
    Entity Framework 学习中级篇2—存储过程(上)
    Entity Framework 学习初级篇7基本操作:增加、更新、删除、事务
    Entity Framework 学习中级篇4—存储过程(下)
    Entity Framework 学习初级篇5ObjectQuery查询及方法
    LINQ之路 9:LINQ to SQL 和 Entity Framework(上)
    在List创建的时候自动加上Rating功能
    利用Feature receiver自动注册/卸载Http Module
    使用SharePoint Web Service(1):创建子站点
  • 原文地址:https://www.cnblogs.com/chris-cp/p/4578067.html
Copyright © 2011-2022 走看看