ubuntu源码编译安装cmake高版本、pybind11安装、crow使用

cmake安装部署

一、文件下载

bash 复制代码
# cmake 3.12
wget https://cmake.org/files/v3.12/cmake-3.12.0.tar.gz --no-check-certificate
# cmake 3.15
wget https://github.com/Kitware/CMake/releases/download/v3.15.0-rc4/cmake-3.15.0-rc4.tar.gz

二、编译安装(cmake 3.15为例)

bash 复制代码
1、tar -zxvf cmake-3.15.0-rc4.tar.gz
2、cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/opt/cmake-3.15.0 ..
3、make  make install

三、环境配置

bash 复制代码
1、sudo mv /usr/bin/cmake /usr/bin/cmake-3.10
2、sudo ln -s /opt/cmake-3.15.0/bin/cmake /usr/bin/cmake

pybind11源码安装

一、pybind11部署

bash 复制代码
1、git clone https://github.com/pybind/pybind11.git
2、cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/opt/pybind11 ..
3、make make install

source ~/.bashrc
# 添加系统环境变量
export PYBIND11_ROOT=/opt/pybind11
export CMAKE_PREFIX_PATH=$PYBIND11_ROOT:$CMAKE_PREFIX_PATH

二、项目工程

CMakeLists.txt文件配置

bash 复制代码
cmake_minimum_required(VERSION 3.15) #这个也可以不写
project(test) #定义工程名字

#如果想要指定找的python解释器,可以设置Python_ROOT_DIR路径,如下所示
#set (Python_ROOT_DIR "/home/ubuntu/anaconda3/envs/standard310")
#find_package(Python 3.10 COMPONENTS Interpreter Development REQUIRED)
#注意找Python包一定要放在pybind11之前,否则无法根据自己想要的版本进行正确链接

find_package(Python3 COMPONENTS Interpreter Development REQUIRED)
if(Python3_FOUND)
message(STATUS "Python3路径: ${Python3_EXECUTABLE}")
message(STATUS "头文件目录: ${Python3_INCLUDE_DIRS}")
message(STATUS "库文件路径: ${Python3_LIBRARIES}")
endif()

find_package(pybind11 REQUIRED HINTS /opt/conda/pybind11)
include_directories(${pybind11_INCLUDE_DIRS})

pybind11_add_module(pybind_test src/main.cpp)#重点

set_target_properties(pybind_test PROPERTIES 
LIBRARY_OUTPUT_NAME "test_so"  # 自定义基础名称
SUFFIX ".so"                      # 可选:统一后缀
)

mian.cpp

cpp 复制代码
#include <pybind11/pybind11.h>
#include <iostream>

void f()
{
std::cout << "hello world\n";
}

PYBIND11_MODULE(pybind_test, m)
{
m.doc() = "a stupid function, print hello world";
m.def("hello", &f, "print hello world");
}

python

python 复制代码
>>> import pybind_test
>>> pybind_test.hello()
hello world

crow使用

一、基础环境

bash 复制代码
sudo apt install build-essential
sudo apt-get install libasio-dev
sudo apt-get install libboost-dev libssl-dev
git clone https://github.com/CrowCpp/Crow.git
相关推荐
wdfk_prog43 分钟前
嵌入式面试真题第 10 题:高优化等级下共享状态可见性、内存模型与系统级同步设计
java·linux·开发语言·面试·职场和发展·架构·c
x-cmd2 小时前
Mac 涨价后,本地 AI 还能千元入门吗?
linux·人工智能·macos·ai·agent·amd·本地ai入门
AOwhisky5 小时前
下一代容器来了?Docker 宣布原生支持 WebAssembly
java·运维·docker·容器·rust·wasm
不羁的木木8 小时前
HarmonyOS APP实战-基于Image Kit的图像处理APP - 第9篇:批量处理与编辑历史
图像处理·ubuntu·harmonyos
春卷同学8 小时前
HarmonyOS掌上记账APP开发实践第15篇:ArkTS 类型系统深度解析 — 从接口到联合类型的灵活运用
ubuntu·华为·harmonyos
摇滚侠9 小时前
Linux 零基础教程 09、11、77
linux·运维·服务器
Lottie20269 小时前
电商自动化提质增效:API接口落地的核心价值与实战用法
运维·自动化
Hardworking66610 小时前
第6章 数据工程
运维·服务器·数据库·数据工程
jieyucx11 小时前
Docker 入门第六阶段:综合实战项目
运维·docker·容器
美丽的欣情11 小时前
RK3588 Debian 交叉编译环境搭建(Windows + VMware Debian + CMake)
运维·windows·debian