使用makefile编译C++工程

目录结构
kexin

  • src
    — *.cpp

    —CMakelists.txt

  • include

  • main.cpp

  • CMakelists.txt

外层CMakelists.txt编写///
·# CMake 最低版本号要求
cmake_minimum_required(VERSION 3.7 FATAL_ERROR)

·# 项目信息
project(“kexin”)

·# include路径
include_directories(${PROJECT_SOURCE_DIR}/include)

·# 设置可执行文件生成路径
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/…/bin)

·# 生成debug版本
SET(CMAKE_BUILD_TYPE “debug”)
if (CMAKE_BUILD_TYPE STREQUAL debug)
add_definitions(-D_DEBUG)
endif ()

  • SET(CMAKE_CXX_FLAGS_DEBUG “$ENV{CXXFLAGS} -O0 -Wall -g -ggdb -std=c++11”)
  • SET(CMAKE_CXX_FLAGS_DEBUG “$ENV{CXXFLAGS} -O0 -Wall -g -ggdb -std=c++11 -pthread”)
  • SET(CMAKE_CXX_FLAGS_DEBUG “$ENV{CXXFLAGS} -O0 -Wall -g -ggdb -std=gnu++11”)
  • SET(CMAKE_CXX_FLAGS_RELEASE “$ENV{CXXFLAGS} -O3 -Wall -std=c++11”)

·# 查找当前目录下的所有源文件
·# 并将名称保存到 DIR_SRCS 变量
·# aux_source_directory(. DIR_SRCS)
·# 添加src子目录
add_subdirectory(src)
·# 指定生成目标
add_executable(mykexin main.cpp)
·# add_executable(kexin ${DIR_SRCS} src/main.cpp src/operator.cpp src/functor.cpp src/set_opp.cpp src/template.cpp)

target_link_libraries(mykexin src11)
内层CMakelists.txt编写///
·# 查找当前目录下的所有源文件
·# 并将名称保存到 DIR_LIB_SRCS 变量
aux_source_directory(. DIR_LIB_SRCS)
·# list(REMOVE_ITEM ${DIR_LIB_SRCS} factorty.cpp)
·# 生成链接库
add_library(src11 ${DIR_LIB_SRCS})
编译及调试///
cd kexin
rm -r build
mkdir build
cmake … && make
cd …/bin
gdb ./mykexin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自由技艺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值