C++使用cmake创建项目

目录

  • cmake下载
  • linux使用cmake创建C++项目
  • cmake编译运行
  • windows使用cmake创建C++项目

cmake下载

cmake支持linux、windows等跨平台使用。
linux安装

sudo apt install cmake

windows下载
cmake官网下载地址,选择Windows x64 ZIP版本:https://cmake.org/download/。

linux使用cmake创建C++项目

创建一个简单的C++项目,功能包含头文件、源文件、库文件,加载lib库等,目录结构如下:
.
├── build
├── CMakeLists.txt
├── include
│ ├── st.h
│ └── work.h
├── lib
│ └── libst.a
├── main.cpp
└── src
└── work.cpp

1、build:构建目录,生成makefile文件和可执行文件的目录,初始为空。
2、CMakeLists.txt:cmake文件。
3、include:头文件目录。
4、lib:库文件目录,这里以协程库libst为例。
5、src:源文件目录。

重点介绍CMakeLists.txt文件:

cmake_minimum_required(VERSION 2.8) #设置cmake最低版本
project("Test_CMK" CXX)	#设置项目名称
option(UBUSYS "ubuntu system" OFF) #条件编译选项,默认OFF,cmake .. -DUBUSYS=ON进行cmake时,选项置为ON(true)
SET(PREFIX ${CMAKE_CURRENT_SOURCE_DIR})#设置普通变量,CMAKE_CURRENT_SOURCE_DIR为当前cmake文件目录
SET(BINDIR ${PREFIX})
message (">>> pwd = ${PREFIX}")#打印变量

if(UBUSYS)
  add_definitions(-D_UBUSYS_) # 宏定义 _UBUSYS_,类似代码里的#define
endif()

# 添加依赖头文件目录
SET(INCDIR
    ${PREFIX}/include
)
INCLUDE_DIRECTORIES(${INCDIR})

SET(SRCS
    ${PREFIX}/main.cpp
)

SET(SRCS ${SRCS}
    ${PREFIX}/src/work.cpp
)

#添加依赖库目录
SET(LIBDIR
    ${PREFIX}/lib
)
LINK_DIRECTORIES(${LIBDIR})

#添加依赖库
SET(LIB_SO
    -lst
)

SET(RUN_MAIN "Test_CMK")
#设置C++编译选项
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -std=c++11 -march=native -Wall")

# 添加可执行文件,并配相关文件
ADD_EXECUTABLE(${RUN_MAIN} ${SRCS})

TARGET_LINK_LIBRARIES(${RUN_MAIN} ${LIB_SO})#添加依赖库

# 安装可执行文件到指定位置,并指定权限
INSTALL(TARGETS ${RUN_MAIN} DESTINATION ${BINDIR} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE WORLD_EXECUTE)

main.cpp

#include "work.h"
#include "st.h"

int main()
{
    if(st_init() == 0){
        printf("st initialize success\n");
    }
    work mwork;
    mwork.dowork();
    
#ifdef _UBUSYS_
	printf("ubuntu system\n");
#endif

    while(1){}
}

work.h

#ifndef WORK_H
#define WORK_H


class work
{
public:
    work();
    void dowork();
};

#endif // WORK_H

work.cpp

#include "work.h"
#include 

work::work()
{

}

void work::dowork()
{
    printf("dowork.\n");
}

cmake编译运行

##当前在CMakeLists.txt所在目录
cd build/				#切换到构建目录
cmake .. -DUBUSYS=ON	#预定义宏
make -j					#编译,当前文件夹生成可执行文件Test_CMK
./Test_CMK				#运行

#打印
st initialize success
dowork.
ubuntu system

windows使用cmake创建C++项目

cmake是跨平台的,在windows下一样可以使用,上述文件目录拷贝到windows下,cd切换到build目录下,执行:

cmake ..

在build目录生成Test_CMK.sln,使用VS打开即可编译运行(上面的libst库是linux的,换成一个windows下的库测试即可),windows下不能使用make命令。

你可能感兴趣的:(C/C++,c++,开发语言,c语言,linux,服务器)