如何指定cmake使用python3

如何指定cmake使用python3,第1张

主目录下的compile_env_config.py是我自己写的一个简单CMakeLists.txt的生成工具。暂时还有点小Bug,那就是每个文件夹中必须要有C代码。

否则生成的CMakeLists.txt的信息会有错误。这个留着后期再改进吧,改进也是很简单的,只是现在的Python还不是很熟,我大致翻了一下Document没有找到一个一步到位的处理函数。自己写一个小代码虽然是可以的,但是自己确实是懒,见谅!

一、首先建一个包

我的工作空间catkin_ws事先建好了,路径是/home/siat/catkin_ws

然后运行以下命令在src文件夹下建立test包

$ cd ~/catkin_ws/src

$ catkin_create_pkg test roscpp1212

注意在包的名字后加上一些基本的依赖,比如roscpp和rospy这样就可以直接调用C++和Python节点了,这将会在CMakeLists.txt中出现

find_package(catkin REQUIRED COMPONENTS roscpp)11

注意如果没有加依赖,而是直接运行

$ catkin_create_pkg test11

来创建包的,在CMakeLists.txt中是这样的

find_package(catkin REQUIRED)11

在后面编译C++节点的时候将会提示“对各种ros类下的函数未定义的引用”

二、编写节点文件

注释:以 # 开头

cmake_minimum_required(VERSION 3.4.1) #设置Cmake最小版本

ADD_EXECUTABLE(exeNme 源码位置) #编译为可执行程序

add_library(libName STATIC 源码位置) # 生成静态链接库

add_library(libName SHARED 源码位置) # 生成动态链接库

SET(变量名 变量值) #设置变量

例如:

SET(srcDir main.c) 等价于 srcDir = "main.c"

SET(srcDir main.c demo.c test.c) 等价于 srcDir = "main.c demo.c test.c"

add_executable(debugger ${srcDir})#用 美元符号 使用变量

include_directories(路径)#设置头文件搜索路径,以CmakeLists.txt所在目录为根目录.

源文件中可以使用 <>来引入自己的头文件了,与引入标准库头文件保持格式的一致

例如:

include_directories(header) 则,源码中使用头文件的时候会从CmakeLists.txt所在目录/header 中去寻找

add_subdirectory(mod1 lib)#执行 mod1/CmakeLists.txt文件,并且把输出文件放在lib文件夹,同时会把lib文件夹作为链接库的搜索位置

link_directories(${PROJECT_SOURCE_DIR}/build/lib)#指明链接库的位置,如果程序要使用链接库,请一定要将此命令尽量写的靠前一些,要不然有时候会找不到链接库.我也不知道为什么....

target_link_libraries(exeName libName)#链接 libName,注意,链接之前要指明链接库的位置,如果libName代表动态链接库,则运行的时候需要把它拷贝到exeName同目录下

如果运行程序涉及到了动态链接库,则运行到时候需要把动态链接库拷贝到运行程序所在的文件夹.

例如:

静态链接库 A

静态链接库 B

动态链接库 C

可执行程序 D

A依赖B和C

D依赖A,

则D运行的时候需要把B和C一起拷贝到其目录下.注意,B是静态的,依然要拷贝过去.


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11590966.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存