DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  cmake/autotool

1 2 3 4 5 下一页

摘要:在CMake中,find_package和find_library都是用来找到和链接库的方法,但它们的用法和适用场景略有不同。 find_package主要用于寻找具有CMake配置文件的库,这些库通常遵循CMake的规范,提供了用于导入目标、库路径、头文件路径等的配置文件。这使得使用find_pa 阅读全文
posted @ 2024-05-06 16:57 DoubleLi 阅读(9) 评论(0) 推荐(0) 编辑

摘要:1. find_package的作用与实例 用来查找第三方依赖包的 .cmake文件,并根据.cmake文件生成依赖包的头文件目录和库文件路径等; CMakeLists.txt实例 find_package(Protobuf REQUIRED) include_directories(${PROTO 阅读全文
posted @ 2024-05-06 16:51 DoubleLi 阅读(91) 评论(0) 推荐(0) 编辑

摘要:刚刚接触Cmake的时候,对于find_package的用法以及背后的原理经常一头雾水,官方文档比较晦涩难懂,网上的博客也都讲解的比较片面。这里通过实战代码案例进行一下详细的总结讲解。帮助自己加深理解的同时,也希望帮到更多的初学者。 此处所有代码均可在我的github项目中找到,欢迎star。后续内 阅读全文
posted @ 2024-05-06 16:50 DoubleLi 阅读(9) 评论(0) 推荐(0) 编辑

摘要:Ubuntu升级Cmake的正确方式 某些软件包编译时需要高版本的Cmake,因此需要升级Cmake。 不能使用 sudo apt-get remove cmake卸载低版本cmake后再重装高版本,这样做会导致之前编译和安装的很多库一起被卸载!!! 正确步骤是: 去https://cmake.or 阅读全文
posted @ 2023-06-07 10:00 DoubleLi 阅读(481) 评论(0) 推荐(0) 编辑

摘要:CMake语法—选项(option) 1 选项 1.1 定义 1.2 说明 variable 选项名 help_text 描述、解释、备注 value 选项初始化值(除ON而外全为OFF) 2 应用注意事项 2.1 代码结构 learn_cmake:为根目录 build:为CMake配置输出目录(在 阅读全文
posted @ 2023-02-01 10:26 DoubleLi 阅读(407) 评论(0) 推荐(0) 编辑

摘要:option的命令形式如下 option(<variable> "<help_text>" [value]) option简介 cmake中option起到编译开关的作用,CMakeLists.txt中option以前的语句,变量按未定义处理,option之后的语句,变量才被定义。另外,注意,opt 阅读全文
posted @ 2023-02-01 10:24 DoubleLi 阅读(276) 评论(0) 推荐(0) 编辑

摘要:CMake option使用场景 : 编译脚本传递参数 -> CMake脚本接收option -> 源代码宏 1.编译脚本传入参数传入一个cmake option TEST_DEBUG #!/bin/sh cmake -DTEST_DEBUG=ON . cmake --build . 2.CMake 阅读全文
posted @ 2023-02-01 10:14 DoubleLi 阅读(94) 评论(0) 推荐(0) 编辑

摘要:商业程序如何加载自己的so 使用LD_LIBRARY_PATH的缺点是要实现设置LD_LIBRARY_PATH。不够自动化。那么大型的商业程序是如何加载自己的so呢。 这里以QtCreator为例。 QtCreator安装在/home/xxx/Qt5.3.1目录下。使用ldd查看qtcreator依 阅读全文
posted @ 2022-11-22 19:18 DoubleLi 阅读(797) 评论(0) 推荐(0) 编辑

摘要:通过cmake编译链接动态库后,会有一个问题,那就是需要的.so文件不能更改目录,一旦.so文件目录变了,整个程序就没法运行了,这肯定是不行的。 原因 后来我查一下一下,linux系统中,程序加载运行需要的.so文件是有顺序的 环境变量LD_LIBRARY_PATH指定的路径 gcc 编译时指定的运 阅读全文
posted @ 2022-11-22 19:16 DoubleLi 阅读(1360) 评论(0) 推荐(0) 编辑

摘要:编译C/C++文件时,很多时候都是直接使用像 gcc main.c 或者 g++ main.cpp 这样的命令编译的。但是代码文件多了后,这样编译就很困难了。这时候 就出现了MakeFile 这个工具。 MakeFile 解决了多个文件编译难的问题,有了MakeFile,只需要在MakeFile的目 阅读全文
posted @ 2022-11-22 19:14 DoubleLi 阅读(1027) 评论(0) 推荐(0) 编辑

摘要:反复研究好几遍,我才发现关于 CMake 变量还可以这样理解!​ 摘要: 本文记录一下 CMake 变量的定义、原理及其使用。CMake 变量包含 Normal Variables、Cache Variables。通过 set 指令可以设置两种不同的变量。也可以在 CMake 脚本中使用和设置环境变 阅读全文
posted @ 2022-09-06 14:37 DoubleLi 阅读(451) 评论(0) 推荐(0) 编辑

摘要:一,cmake 变量引用的方式: 前面我们已经提到了,使用${}进行变量的引用。在 IF 等语句中,是直接使用变量名而不通过${}取值 二,cmake 自定义变量的方式: 主要有隐式定义和显式定义两种,前面举了一个隐式定义的例子,就是 PROJECT 指令,他会隐式的定义<projectname>_ 阅读全文
posted @ 2022-09-06 14:03 DoubleLi 阅读(532) 评论(0) 推荐(0) 编辑

摘要:对于简单的项目,将所有内容保存在一个目录中是可以的,但是大多数实际项目倾向于将它们的文件分割到多个目录中。通常可以找到不同的文件类型或分组在各自的目录下的独立模块,或者将属于逻辑功能组的文件放在项目目录层次结构的各自部分中。虽然目录结构可能由开发人员对项目的看法驱动,但项目的结构方式也会影响构建系统 阅读全文
posted @ 2022-09-06 11:09 DoubleLi 阅读(1245) 评论(0) 推荐(0) 编辑

摘要:经常在Linux下面写C++程序,尤其是需要集成各种第三方库的工程,肯定对find_package指令不陌生。 这是条很强大的指令。可以直接帮我们解决整个工程的依赖问题,自动把头文件和动态链接文件配置好。比如说,在Linux下面工程依赖了OpenCV,只需要下面几行就可以完全配置好: add_exe 阅读全文
posted @ 2022-09-06 11:06 DoubleLi 阅读(673) 评论(0) 推荐(0) 编辑

摘要:find_package find_package用于加载第三方库,可以将需要的部分指定为组件,例如使用包 nodelet:find_package(catkin REQUIRED COMPONENTS nodelet)。例如,使用 Boost 时加载线程组件: 1 find_package(Boo 阅读全文
posted @ 2022-09-06 11:04 DoubleLi 阅读(1473) 评论(1) 推荐(1) 编辑

摘要:1. 指令说明 target_include_directories():指定目标包含的头文件路径。官方文档 target_link_libraries():指定目标链接的库。官方文档 target_compile_options():指定目标的编译选项。官方文档 目标 由 add_library( 阅读全文
posted @ 2022-09-06 10:54 DoubleLi 阅读(487) 评论(0) 推荐(0) 编辑

摘要:交叉编译指的在一个平台上生成另一个平台上的可执行代码。很多时候,开发的代码可能并不只是在开发主机的平台上执行,比如在Windows下开发的程序,希望能够在Linux、或者MacOS下执行;或者有时候目标平台根本就没有操作系统,没有对应的编译器,所以必然需要进行交叉编译。 交叉编译笔者在工作中经常会遇 阅读全文
posted @ 2022-09-05 09:59 DoubleLi 阅读(408) 评论(0) 推荐(0) 编辑

摘要:一、引言 很多时候,我们在开发的时候是面对嵌入式平台,因此由于资源的限制需要用到相关的交叉编译。即在你host宿主机上要生成target目标机的程序。里面牵扯到相关头文件的切换和编译器的选择以及环境变量的改变等,我今天仅仅简单介绍下相关CMake在面对交叉编译的时候,需要做的一些准备工作。 二、CM 阅读全文
posted @ 2022-09-02 10:43 DoubleLi 阅读(464) 评论(0) 推荐(0) 编辑

摘要:CMAKE命令使用时需要与CMakeLists.txt在不同的目录下,一般是在CMakeList.txt文档所在的目录下创建一个build文件夹,然后cd到build文件夹,执行cmake ..,此时会根据CMakeLists.txt将需要的配置文件生成到build目录下,然后在build目录下执行 阅读全文
posted @ 2022-09-02 10:39 DoubleLi 阅读(358) 评论(0) 推荐(0) 编辑

摘要:1. 原理 CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序或共享库。 交叉编译,是 阅读全文
posted @ 2022-08-30 17:35 DoubleLi 阅读(1134) 评论(0) 推荐(1) 编辑

1 2 3 4 5 下一页