美文网首页
cpp-d07-C++Drogon静态部署笔录

cpp-d07-C++Drogon静态部署笔录

作者: 国服最坑开发 | 来源:发表于2023-03-28 21:53 被阅读0次

0x00 环境&目标

为了方便部署,直接打成一个静态执行文件,可以随意部署到linux环境。
编译机器环境:

  • Ubuntu 2204
  • g++-12
  • gcc-12
  • 采用源码编译方式安装 drogon
依赖库安装
# 安装 openssl开发库
sudo apt install libssl-dev
# mysql 数据库
sudo apt install libmariadb-dev
# 安装 glibc源码
sudo apt install glibc-source -y

0x01 重点:

在编译 drogon 库时,就启动静态编译:

cmake .. -DCMAKE_CXX_FLAGS="-fcoroutines -std=c++20 -static -static-libgcc -L/usr/lib/x86_64-linux-gnu" -DCMAKE_BUILD_TYPE=Release
make && sudo make install
# 也可以指定CPU物理内核
make -j8 && sudo make install

中间遇到什么库找不到的问题,直接apt install
虽然上面启用了静态编译,但是在cmake ..的时候,还是会发现链接了很多.so 动态库。
暂时解决办法就是 把相应的 .so 重命名成 .so_bak,此时重新cmake ..就可以成功链接到.a静态库。
比如:

mv /usr/lib/x86_64-linux-gnu/libcares.so /usr/lib/x86_64-linux-gnu/libcares.so_bak

编译中途发现点问题,是在编译例子时报错,注释掉下面这一行:

option(BUILD_EXAMPLES "Build examples" ${BUILD_PROGRAMS})

0x02 通用静态打包配置

cmake_minimum_required(VERSION 3.10)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_EXE_LINKER_FLAGS "-static")

project(app CXX)
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")

0x03 日志库配置使用

cmake_minimum_required(VERSION 3.10)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_EXE_LINKER_FLAGS "-static")

project(app CXX)
find_package(spdlog REQUIRED)

# 定义编译输出文件
add_executable(app main.cc)

# 链接库配置
target_link_libraries(${PROJECT_NAME} PRIVATE spdlog::spdlog)

相关文章

  • Tomcat部署Web应用的几种方式

    Tomcat中WebApp的部署可以分为静态部署和动态部署两种。 一、静态部署静态部署又可以分为以下的几种:1、直...

  • linux nginx 部署静态网页

    安装nginx环境 部署静态文件

  • 第18章 网站服务

    静态站点 动态站点 部署网上商城 ecshop 部署博客系统 wordpress

  • 搭建 Nginx 静态网站

    搭建静态网站,首先需要部署环境。下面的步骤,将告诉大家如何在服务器上通过 Nginx 部署 HTTP 静态服务。 ...

  • Tomcat部署Web应用方法总结

    Tomcat部署Web应用方法总结在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署。在下...

  • Kubernetes Pod

    一、Pod 介绍静态Pod & 普通Pod部署静态PodEndpointEvent 二、Pod基本用法 三、Pod...

  • 部署Netlify站点博客

    Netlify站点部署静态博客 今天尝试把站点部署在Netlify[https://app.netlify.com...

  • Nginx配置详解

    1.部署静态文件 部署静态文件是Web服务器的最基本任务。 只需放入.txt,.html,.zip或任何其他类型的...

  • 07.Nginx静态资源配置

    1.静态资源类型 Nginx 作为静态资源 Web 服务器部署配置, 传输⾮常的⾼效, 常常⽤于静态资源处理, 请...

  • 部署服务器

    部署node服务pm2 安装环境 常用命令 部署静态服务 sts环境安装 运行方式

网友评论

      本文标题:cpp-d07-C++Drogon静态部署笔录

      本文链接:https://www.haomeiwen.com/subject/rzmtddtx.html