
cmake
Felaim
Hey, you're not a nobody. You're a somebody.
展开
-
Makefile: 参数-I (大写字母i), -l (小写字母l) 和-L的区别
在写Makefile的时候,其实并不像写CMakeList.txt那么方便,直接include_directories, target_link_libraries,而且对于这些关键字大小写都是不敏感的,可是Makefile不一样,所以LZ这里对参数-I (大写字母i), -l (小写字母l) 和-L的区别也进行了简单的记录和总结。参数-I (大写字母i):可以看作是include的首字母大写...原创 2019-12-04 15:35:32 · 6035 阅读 · 0 评论 -
cmake:find_package
在写cmake或者看工程源文件的时候,通常会用到find_package 为外部工程加载设置。但是QUIET、REQUIRED这些具体含义是什么?find_package( [version] [EXACT] [QUIET] [[REQUIRED|COMPONENTS] [components…]] [NO_POLICY_SCOP...原创 2018-03-20 10:15:12 · 870 阅读 · 0 评论 -
CMake源码编译(cmake升级)
LZ今天在试一个开源代码的效果的时候,发现通过sudo apt-get install cmake安装的版本是cmake 2.8版本的,但是开源代码要求最低版本是cmake 3.4,所以就只能源码安装,网上通过个人软件仓安装的方法试过了,但是结果是失败。 会报下面的错误:CMake Error:Could not find CMAKE_ROOT!!!CMake has most likely n原创 2017-11-22 21:15:04 · 2382 阅读 · 0 评论 -
CMake error 合集(Configuring incomplete errors occurred!)
其实,每次碰到要安装一些软件啊,通常软件的源码都是c/c++,刚开始LZ不理解,从来都是跟着Readme.txt,一步步安装,如果说一帆风顺的把软件安装好了,也就罢了,很可能不会深究到底cmake .cmake ..make allmake -j4make install上述列出来的到底是什么含义,直接机械式地先安装依赖库,经常用的也就是:sudo apt-get install #bal原创 2017-05-09 21:15:01 · 85168 阅读 · 39 评论 -
解决Unknown CMake command "QT5_WRAP_UI"类似错误
这种类似的问题LZ前前后后碰到了好几次,这里贴出其中一种,其他也都是类似的解决方法。CMake Error at src/Ui/CMakeLists.txt:15 (FIND_PACKAGE): Could not find module FindQT5.cmake or a configuration file for package QT5. Adjust CMAKE_MO原创 2017-12-08 22:51:23 · 9659 阅读 · 0 评论 -
CMAKE的常见命令合集
接触c++也不是很长,但是在写工程的时候CMakeLists.txt写的不规范,会使得测试程序无法编译成功,特此开一篇博客专门写一些cmake中常用的一些命令,这样一来可以做个总结,第二个下次使用也便于查找,相当于自己慢慢建立一个cmake的命令手册吧!LZ现在写CMakeLists.txt的时候有一个小技巧可以分享给大家,就是在链接库比较多,对于LZ这种新手来说可能会写的不是特别正确,这时,在ma原创 2017-06-01 09:50:17 · 1549 阅读 · 0 评论 -
cmake编译Debug和Release版本的注意点
在CMakeLists.txt中首先可以定义编译的模式到底是Debug版本还是Release版本,在Terminal中直接编译,也可以进行参数定义,不进行特殊定义应该都是Release版本。但是LZ刚开始使用的是Kdevelop这个IDE,然后就刷刷刷next,直接编译了g2o,结果在工程中应用的时候发现找不到模块,后来发现target_link_libraries找不到对应的库。/usr/bin/原创 2017-06-03 16:49:05 · 6712 阅读 · 3 评论 -
Cmake实践一:hello world(v1.0)
1.Cmake简介CMake是一个跨平台的建构系统的工具,可以用简单的语句来描述所有平台的安装(编译过程)。它能够输出各种各样的构建文档makefile或者project文件,描述系统建构的过程。还能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CmakeLists.txt。CMake并不直接建构出最终的软件,而是产生标准的建构档(如 Unix的原创 2017-05-09 20:06:26 · 1435 阅读 · 0 评论 -
CMake实践三:Hello World的共享库建立
这节的任务是建立静态库和动态库,提供HelloFunc函数供其它程序编程使用,HelloFunc向终端输出Hello World字符串。1.新建文件 具体怎么新建目录这些LZ都不赘述了,可以参考http://blog.youkuaiyun.com/felaim/article/details/71601017这篇博客进行自己工程的构建,建议刚开始不要嫌麻烦,养成良好的代码习惯。这节的内容主要是共享库的建立,所原创 2017-05-24 20:04:44 · 708 阅读 · 0 评论 -
CMake实践二:hello world(v2.0) 第一部分
1.建立t2目录在~/cmake目录下建立t2目录。将实践一中t1工程中的main.c和CMakeLists.txt拷贝到t2目录中。先要把握一个宗旨,需要为任何一个子目录建立一个CMakeLists.txt2.添加子目录srcmkdir srcmv main.c srccd CMakeLists.txttouch CMakeLists.txt上面是ubuntu终端中新建文件夹和移动文件的代码原创 2017-05-12 09:55:24 · 582 阅读 · 0 评论 -
CMake实践二:hello world(v2.0) 第二部分
举个简单的例子:INSTALL(TARGETS myrun mylib mystaticlib RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION libstatic ) 上面的例子会将:可执行二进制myrun安装到CMAKEINSTALLPREFIX/bin目录动态库libmylib安装到{CMAKE_I原创 2017-05-12 10:12:21 · 578 阅读 · 0 评论 -
Linux下如何完整的构建cmake项目
CMake项目的完整构建Linux下的CMake项目通常由几个文件夹组成。小伙伴们可以先在自己的电脑上新建一个文件夹,作为你代码的根目录,然后往里面建几个子文件夹,这里并不涉及具体的代码,只是可以作为今后写代码的模板,万事开头难嘛!子文件1:bin用来放编译好的可执行二进制文件,二进制文件就是可以直接运行的程序子文件2:src用来放源代码子文件3:lib用来放编译好的库文件夹,库文件是为二进制提供函原创 2017-05-11 10:05:16 · 3283 阅读 · 1 评论