首页 > 其他分享 >cmake搭建cpp测试工程

cmake搭建cpp测试工程

时间:2023-02-23 15:33:41浏览次数:42  
标签:CMAKE CURRENT SOURCE cpp cmake LINE include message 搭建

  1. 创建目录结构
    image
  2. 撰写CMakeLists.txt
点击查看代码
#cmake需求的最小版本,2和3不兼容
#cmake_minimum_required(VERSION 3.1)
# 置工程名称
project(HELLO)

#设置变量 SOURCE  添加 main.cpp到变量
#相对路径
set(SOURCE main.cpp)


#设置编译执行程序,名称位工程名,源代码变量 SOURCE
add_executable(${PROJECT_NAME} ${SOURCE})

#设置编译选项
# -Wall -g 编译调试版本
add_definitions(-std=c++11 -o2 -D__LINUX__ -Wall -g)
#通过 CMAKE_CXX_FLAGS 变量 来设置
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -std=c++11")
message("[LINE:${CMAKE_CURRENT_LIST_LINE}]" ${CMAKE_CXX_FLAGS})
message("[LINE:${CMAKE_CURRENT_LIST_LINE}]" ${PROJECT_NAME})
message("[LINE:${CMAKE_CURRENT_LIST_LINE}]" ${SOURCE})
message("[LINE:${CMAKE_CURRENT_LIST_LINE}]" ${PROJECT_SOURCE_DIR})
message("[LINE:${CMAKE_CURRENT_LIST_LINE}]" ${PROJECT_BINARY_DIR})

message("============include dir=====================")
#绝对路径
include_directories(
    ${CMAKE_SOURCE_DIR}/core
    ${CMAKE_SOURCE_DIR}/common
    ../Library_Source/include
    ../Library_Source/libSTDF
    ./include
    /opt/gss/poco_1_6/include
)
message("[LINE:${CMAKE_CURRENT_LIST_LINE}]" ${CMAKE_CURRENT_SOURCE_DIR})

link_directories(
    ${CMAKE_SOURCE_DIR}/libs
    /opt/
    /proj/
)


get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
foreach(dir ${dirs})
  message("[LINE:${CMAKE_CURRENT_LIST_LINE}]" "dir='${dir}'")
endforeach()

add_executable(test main.cpp ${SRC_LIST1} ${SRC_LIST2} ${SRC_LIST3})

target_link_libraries(lib_gzip PocoUtil PocoJSON PocoFoundation PocoXML pthread)
  1. 下载json.hpp、spd_logger.h、configgr.h
  2. .vscode添加launch.json
点击查看代码
{
    "configurations": [
    {
        "name": "(gdb) 启动",
        "type": "cppdbg",
        "request": "launch",
        "program": "${workspaceFolder}/build/HELLO",
        "args": [],
        "stopAtEntry": false,
        "cwd": "${fileDirname}",
        "environment": [],
        "externalConsole": false,
        "MIMode": "gdb",
        "setupCommands": [
            {
                "description": "为 gdb 启用整齐打印",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
            },
            {
                "description":  "将反汇编风格设置为 Intel",
                "text": "-gdb-set disassembly-flavor intel",
                "ignoreFailures": true
            }
        ]
    }
    ]
}
  1. main.cpp 编码
点击查看代码
#include <iostream>
#include <string>
#include <vector>
#include "spd_logger.h"

int main()
{
    std::vector<int> v{10, 10, 10};
    std::cout << "hello world" << std::endl;
    TRACE(json(v).dump());
    return 0;
}
  1. 编译
    cd build;make clean;make
  2. 执行
    image

标签:CMAKE,CURRENT,SOURCE,cpp,cmake,LINE,include,message,搭建
From: https://www.cnblogs.com/xzsxzxs/p/17148138.html

相关文章

  • Abp搭建多模块,子模块迁移问题
    Abp搭建多模块,子模块迁移问题第一步,在官网Abp.io下载在一个全新的框架,然后可以根据快速入门来实现属于自己的第一套ABP增删改查.快速入门官网网址:https://docs.abp.i......
  • 搭建nightngale监控体系
    nightngale,即夜莺,是由滴滴开源的监控系统,github地址为https://github.com/ccfos/nightingale。nightngale有一套很方便的监控告警系统可供使用,本身也有多项监控指......
  • QT新建工程后,只有一个pro文件, 没有.cpp和.h文件,提示找不到构建套件
       ......
  • php-wamp+eclipse+php环境搭建
    1.回顾:上篇已经解决了wamp与IIS冲突的问题2.这篇就开始使用wamp+eclipse搭建php的开发环境3.准备篇  3.1下载wamp软件      在百度里可以搜索到,安装的......
  • Rust开发环境搭建(Linux)
    1、使用Rustup安装       执行如下命令curl--proto'=https'--tlsv1.2-sSfhttps://sh.rustup.rs|sh       执行结果如下:        在这里使用......
  • vs2022 快速搭建imgui工程
    vcpkginstallimgui[dx11-binding]:x64-windows-staticvcpkginstallimgui[win32-binding]:x64-windows-static新建console工程点击查看代码//d3d11.lib;d3dc......
  • 手动搭建桥接网络 2
    1.建namespace和默认空间联通#veth1在ns1上,IP:192.168.1.11#veth0从默认空间->br0,IP:192.168.1.10ipnetnsaddns1iplinkaddveth0typevethpeernamevet......
  • 【1】性能测试导学--搭建环境
                            python版本需在3.8以下,需要重新安装python,在pycharm搜索安装locustio      ......
  • myql搭建mha高可用
    myql搭建mha高可用:注:本质是主从+高可用保障(1个mha管理节点,1个mysql主节点,1个mysql从节点)下载网址:​​https://code.google.com/archive/p/mysql-master-ha/downloads​​......
  • Node.js 环境搭建教程
    Node.js环境搭建教程文章目录​​Node.js环境搭建教程​​​​一、下载与安装​​​​1、下载​​​​2、安装​​​​第一步:点击“next”​​​​第二步:勾选“Iaccept.......