在这篇博文中,我将与大家分享如何使用 CMake 编译 Python 的共享库(so 文件)。对于那些喜欢将 C++ 代码与 Python 结合的开发者来说,这个过程是必不可少的。此外,我还会探讨环境配置、编译过程、参数调优、定制开发、调试技巧以及错误集锦等方面的内容。
## 环境配置
首先,确保我们有一个合适的开发环境。下面是一个简单的环境配置流程图,使用了 mermaid 语法来表示。            
                
         
            
            
            
            Linux C++调用Python3入门准备以下面的目录结构演示如何在Linux C/C++调用python3。|--hello.py
|--main.cpp
|--CMakeLists.txthello.py:python的脚本,里面有2个函数main.cpp:c++函数CMakeLists.txt:Cmake文件,生成makefilepython脚本示例python脚本hello.py内容如下            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-11 08:09:45
                            
                                115阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、前期基础知识储备①首先 利用AS创建含原生代码的项目时,它本身都编译不过,是的编译不过,报的错就是下面这个。报错:CMake Error: CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is not set. You probably need to select a            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-09 19:40:50
                            
                                177阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1,Ubuntu安装了cmake之后,直接输入指令查看版本。cmake -version我这里的版本为3.16.32,使用visual studio里面创建一个CMake项目是最快可以看到的。但是一般无法理解。所以我找了网上资料。根据网上所说和自己再试错下。初步了解了cmake的一些操作。3,最外层CMakeLists.txt编写。这个编写主要是按照我当前的文件结构进行编写的,后面其他不同的结构需            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-02 14:40:30
                            
                                42阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            从上篇文章中,大家按操作勾选了support C++后,应该可以发现,项目中会多了个cpp文件夹,里面有.cpp文件,还有个CMakeLists.txt,这个CMakeLists.txt就是cmake编译的配置文件,所以我们这就说一下怎样配置CMakeLists,和怎样用另外的这一种方法生成所要的so库。 
  
  首先,我们在StringJni.java中再声明一个native方法get            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-03 07:03:43
                            
                                101阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            项目编写 ROS 节点还需要配置构建规则,CMakeList.txt 文件就是用来指定如何编译当前节点,里面包含一些编译指令,今天就来学习下常用的配置。不需要把 CMakeList 全部的内容都学会,先把基础的搞定,后面用到再学即可。一、CMakeList 的作用ROS 项目使用 CMake 来构建的,为了方便一次性构建,所以用一个 CMakeList.txt 文件作为 CMake 系统的输入,通            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-12 15:24:00
                            
                                130阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            本文章将介绍Linux系统下,如何使用cmake将C++语言编译成so文件 ,主要介绍如何安装cmake和编译,并使用python调用,细节如            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-06-15 11:13:41
                            
                                1220阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前言 之前,每次需要边写C++代码的时候,我的内心都是拒绝的。  1. 它没有代码提示!!!这意味着我们必须自己手动敲出所有的代码,对于一个新手来说,要一个字母都不错且大小写也要正确,甚至要记得住所有的jni函数等,真是太折磨人了…平时写Java代码的时候都是写几个字母会出来一大堆提示然后选择的,这样还有一个好处就是很多时候我们不知道有那些函数,但是我们可以通过obj.,然后就可以看到它            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-14 09:58:33
                            
                                139阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             本文描述在Win10-64位系统中安装CMake、cmake-gui的简单使用及其与VS2015编译器的结合使用,以及cmake命令行与nmake的结合使用。下载从CMake官网上下载最新版本的安装包,本文中下载的是 cmake-3.10.1-win64-x64.msi。若不想安装,可直接下载压缩包版本cmake-3.10.1-win64-x64.zip。安装CMake的安装            
                
         
            
            
            
            前言我们使用 Make 工具构建项目时,需要编写 Makefile,但不同的平台 Make 工具是不一样的,比如 Linux 的 GNU Make ,Windows 的 nmake,它们对 Makefile 的规范也是不一样的,如果软件要跨平台,则需要针对每一种 Make 工具写一份 Makefile,非常浪费时间;而且当软件比较庞大时,Makefile 的编写也会变的复杂。CMake 简介CMa            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-14 13:54:57
                            
                                63阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1. 原理CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序或共享库。交叉编译,是利用交叉编译工具链,在宿主机器执行编译、链接生成目标机(嵌入式arm)运行的程序或者共享库2. 测试环境            
                
         
            
            
            
            简介CMake是一个跨平台的编译自动配置工具,它使用一个名为CMakeLists.txt的文件来描述构建过程,可以产生标准的构建文件。它可以用简单的语句来描述所有平台的安装(编译过程)。它能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。CMake并不直接建构出最终的软件,而是产生标准的建构档(如Unix的Makefile或            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-03 07:19:22
                            
                                131阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1、CMake简介 Make是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-19 21:04:41
                            
                                188阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            CMake允许开发者编写一种平台无关的CMakeList.txt文件来定制整个编译流程,再根据目标用户的平台进一步生成所需的本地化Makefile和工程文件,如Linux/Unix的Makefile或者Windows的VisualStudio工程等。
在Linux平台下使用cmake生成Makefile并编译的流程,如下:
1、 编写CMake配置文件CMakeLists.txt。
2、 执行命令            
                
         
            
            
            
            # 使用CMake编译Python加载的So(共享库)文件
在这篇文章中,我们将介绍如何在Windows环境下使用CMake工具编译一个可以被Python加载的共享库(`.so`文件)。整个过程的步骤相对清晰,适合刚入行的开发者学习与实践。
## 流程概述
下面是整个过程的流程表:
| 步骤 | 描述                      |
|------|-------------            
                
         
            
            
            
            # Android NDK CMake编译SO文件教程
## 简介
在Android开发中,有时候需要使用C/C++来进行底层开发或者性能优化。NDK(Native Development Kit)提供了一种使用原生代码(C/C++)开发Android应用的方法。而CMake是一个跨平台的构建工具,它可以用简单的语法来描述构建过程,生成与平台无关的构建文件。
本文将教会你如何使用Android            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-07-16 14:39:10
                            
                                439阅读
                            
                                                        
                                点赞
                            
                                                                             
                 
                
                             
         
            
            
            
            前言最近在研究libcurl库,毫无疑问提供了cmake的编译工程。针对几个关系利害点说明。众所周知,cmake 是一个跨平台的编译功臣构建工具。其中不免对gcc或者g++的编译器进行各种配置。而本身cmake的语法就类似python等过程式的语言。cmake为什么会跨平台?首先你得对跨平台有所了解,不同平台的编译器的使用规则不同,通常无非是兼容windows和linux,而unix和linux类            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-15 06:42:33
                            
                                45阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、CMake编译原理CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序或共享库(so(shared object))。因此CMake的编译基本就两个步骤:cmake
makecmake            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-19 12:33:42
                            
                                1120阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录CMakeLists的编译CMakeLists编译原理**文件路径:****编写CMakeLists.txt**CMakeLists常用命令CmkeLists的基本步骤1.1 CMake版本1.2 软件包名称1.3 查找相关的CMake包1.4 设置配置环境1.5 **指定头文件目录**1.6 可执行目标Qt CMakeLists使用案例 CMakeLists的编译CMakeLists编            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-09 17:09:36
                            
                                587阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            android编译系统的makefile文件Android.mk写法如下
(1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件。由于一般情况下
Android.mk和需要编译的源文件在同一目录下,所以定义成如下形式:
LOCAL_PATH:=$(call my-dir)
上面的语句的意思是将LOCAL_PATH变量定义成本文件所在目录路径。
(2)Andro            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-29 18:08:28
                            
                                245阅读