一行编译代码

本文详细介绍了如何使用CMake进行C++项目的构建,包括设置编译选项、目录包含路径、源文件列表及生成可执行文件的过程。同时,深入解析了C++预处理器宏__FILE__、__LINE__和__FUNCTION__的用途,以及自定义宏在代码中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

__ FILE__ 宏在预编译时会替换成当前的源文件名

__LINE __ 宏在预编译时会替换成当前的行号

__FUNCTION __ 宏在预编译时会替换成当前的函数名称

build.sh

# !/bin/bash
#echo $(cd `dirname $0`;pwd)
dirpath=$(pwd)
echo ${dirpath}
if [ -d "${dirpath}/build" ] ; then
    rm -rf build
    echo "this has a ${dirpath}/build"
    mkdir build
else
    mkdir build
fi
cd build
cmake ${dirpath}/code/
make -j2

CMakeLists.txt

cmake_minimum_required (VERSION 3.12.3)
project (procject)


#set(CMAKE_C_COMPILER "gcc-8.3.0")
#set(CMAKE_CXX_COMPILER "g++-8.3.0")

set(CMAKE_CXX_FLAGS " -O0 -g3 -Wall -fmessage-length=0 -std=c++11" )

include_directories(PUBLIC_HEADERS
${CMAKE_CURRENT_SOURCE_DIR}/include/
)

set(SRCE_LIST
${CMAKE_CURRENT_SOURCE_DIR}/source/Base_on.cpp
)

file(GLOB SRC_LIST
${CMAKE_CURRENT_SOURCE_DIR}/source/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
)

add_executable(procject ${PUBLIC_HEADERS} ${SRC_LIST})

Util.h

#define VIR_ROLE(role) virtual role& get##role() = 0;

#define ROLE(role)     get##role()

#define IMP_ROLE(role) role& get##role()         \
        {                                        \
            return static_cast<role &>(*this);   \
        }                                        \

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值