环境:windows+WSL+ubuntu20.04+clion
生成cmake文件调试 1、在auto的根目录下创建名称为cmake的文件#!/usr/bin/env bash
# NGX_CMAKE_FILE=$NGX_OBJS/CMakeLists.txt
# ********此处生成到项目跟目录,修改$NGX_OBJS/CMakeLists.txt为CMakeLists.txt
NGX_CMAKE_FILE=CMakeLists.txt
NGX_CMAKE_TMP=$NGX_OBJS/tmp
#output includes
cmake_ngx_incs=`echo $CORE_INCS $NGX_OBJS $HTTP_INCS $MAIL_INCS
| sed -e "s/ *([^ ][^ ]*)/$ngx_regex_cont1/g"
-e "s///$ngx_regex_dirsep/g"`
cat << END > $NGX_CMAKE_TMP
cmake_minimum_required(VERSION 3.6)
include_directories(
.
$cmake_ngx_incs)
END
#output src
cmake_ngx_src="$CORE_SRCS $HTTP_SRCS $MAIL_SRCS $NGX_MISC_SRCS $NGX_ADDON_SRCS $NGX_SHARED_SRCS"
cmake_ngx_src=`echo $cmake_ngx_src | sed -e "s/ *([^ ][^ ]*)/$ngx_regex_cont1/g"
-e "s///$ngx_regex_dirsep/g"`
#******** 此处将ngx_modules.c修改为$NGX_OBJS/ngx_modules.c
cat << END >> $NGX_CMAKE_TMP
set(SOURCE_FILES
$NGX_OBJS/ngx_modules.c
$cmake_ngx_src)
END
#output target
cat << END >> $NGX_CMAKE_TMP
add_executable(nginx ${SOURCE_FILES})
END
#output lib
echo ${CORE_LIBS}
CMAKE_CORE_LIBS=`echo ${CORE_LIBS} | sed -e "s/-l//g"`
cat << END >> $NGX_CMAKE_TMP
target_link_libraries(nginx $CMAKE_CORE_LIBS)
END
if [ -f $NGX_CMAKE_TMP ]
then
(cat $NGX_CMAKE_TMP | sed -e "s/\//g") > $NGX_CMAKE_FILE
rm $NGX_CMAKE_TMP
fi
2、在根目录下的configure文件中,新增加执行命令
. auto/cmake3、cmake生成的路径
在构建完成后,可以在根目录下的obj/temp目录下看到cmake文件
configure启动命令其中–prefix指定生成路径为configure同级目录下的server目录
–add-modul 指定编译目录
sudo ./configure -module=./src/ngx_http_myfilter_module --with-debug --with-file-aio --add-module=./src/sendfile_test --with-threads --add-module=./src/nginx-requestkey-module-master/ --with-http_secure_link_module --add-module=./src/redis2-nginx-module-master/ --prefix=./server执行make命令 编译
make -j8安装
有些目录没有权限,所以使用sudo
sudo make install启动
cmake -S .. -G "Unix Makefiles" nginx -p ./../server



