1. 开发环境
- ubuntu
- vscode
- cmake
- g++
2. 创建工程目录
新建工程文件夹 nginx_sim, 将此目录设置为代码仓库,建立如下图所示的目录结构。
3. CMake 文件编写
(1) 在 nginx_sim 根目录创建一个 CMakeLists.txt 文件。内容如下
cmake_minimum_required(VERSION 3.10)
project(nginx_sim)
set(CMAKE_BUILD_TYPE "Debug")
add_subdirectory(src)
- 最终生成名称为 nginx_sim 的可执行文件
- 考虑到可能需要调试,设置了 Debug 版本, 发布时改成 Release
(2) 在 src 文件夹新建 CMakeLists.txt 文件,内容如下
aux_source_directory(. SRC_LIST)
add_compile_options(-std=c++11 -Wall)
include_directories(${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}/misc ${PROJECT_SOURCE_DIR}/net ${PROJECT_SOURCE_DIR}/signal ${PROJECT_SOURCE_DIR}/proc)
aux_source_directory(${PROJECT_SOURCE_DIR}/include SRC_INC)
aux_source_directory(${PROJECT_SOURCE_DIR}/misc SRC_MISC)
aux_source_directory(${PROJECT_SOURCE_DIR}/net SRC_NET)
aux_source_directory(${PROJECT_SOURCE_DIR}/signal SRC_SIGNAL)
aux_source_directory(${PROJECT_SOURCE_DIR}/proc SRC_PROC)
aux_source_directory(${PROJECT_SOURCE_DIR}/proc SRC_TEST)
add_executable(nginx_sim ${SRC_LIST} ${SRC_INC} ${SRC_MISC} ${SRC_NET} ${SRC_SIGNAL} ${SRC_PROC} ${SRC_TEST})
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
(3) 编写一个测试程序 main.cxx
#include <stdio.h>
int main(int argc, char* const* argv)
{
printf("Hello, Linux C++ world!\n");
return 0;
}
4. 编译运行
(1) 进入 build 目录,cmake 编译生成 makefile 文件后,make 在bin目录下生成可执行文件
cd ./build
cmake ..
make
(2) 进入bin目录,可看到 nginx_sim 可执行文件,运行它
cd ./bin
./nginx_sim
5 结语
此完成了工程的环境搭建,之后便在此框架添加功能模块;
下一节将添加我们自己的log系统。