添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

《CMake Practice》的第三章,在t2中创建工程后,运行cmake …之后出现如下警告:“

CMake Warning (dev) in CMakeLists.txt:
  No cmake_minimum_required command is present.  A line of code such as
    cmake_minimum_required(VERSION 3.10)
  should be added at the top of the file.  The version specified may be lower
  if you wish to support older CMake versions for this project.  For more
  information run "cmake --help-policy CMP0000".
This warning is for project developers.  Use -Wno-dev to suppress it.
-- Configuring done
-- Generating done
-- Build files have been written to: /home/cxj/backup/cmake/t2/build

该警告其实是告诉我们:没有给出编译目标工程的最低的cmake版本

解决办法,在工程根目录t2下的CMakeLists.txt文件最前面添加上目标工程的最低cmake版本

CMAKE_MINIMUM_REQUIRED(VERSION 3.10)

当然也可添加:

#务必安装的cmake版本高于给定的最低版本,否则终止构建
CMAKE_MINIMUM_REQUIRED(VERSION 3.10 FATAL_ERROR)

注意:有时候你会发现添加了这句代码,还是出现No cmake_minimum_required command is present,这是因为这句代码务必放在根目录的CMakeLists.txt的第一行。就是PROJECT()的上面

#查看cmake的版本
cmake --version
                                    将目标target与指定动态库进行链接,确保target运行时,可以使用动态库中的函数和符号,语法格式target_link_libraries(target  item)注意:如果目录不存在,会自动创建,无需手动,生成的可执行文件是在执行make命令后,如果此处使用相对路径,那么对于./ 指的是makefile文件所在的目录。静态库则不行,可以使用通用的set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
                                    其实,每次碰到要安装一些软件啊,通常软件的源码都是c/c++,刚开始LZ不理解,从来都是跟着Readme.txt,一步步安装,如果说一帆风顺的把软件安装好了,也就罢了,很可能不会深究到底cmake .
cmake ..
make all
make -j4
make install上述列出来的到底是什么含义,直接机械式地先安装依赖库,经常用的也就是:sudo apt-get install  #bal
CMake Warning (dev) in CMakeLists.txt: 
  Policy CMP0020 is not set: Automatically link Qt executables to qtmain 
  target on Windows.  Run “cmake –help-policy CMP0020” for policy details. 
                                    最近一直在学习cmake,所以把相关错误放在一个专栏里。
第一个碰到的问题是:没有给出编译目标工程的最低的cmake版本
其实这是一个警告,在一些IDE会自动帮你添加的。但是还是建议添加上编译工程的最低cmake版本。
#务必安装的cmake版本高于给定的最低版本,否则终止构建
CMAKE_MINIMUM_REQUIRED(VERSION 3.2 FATAL_ERROR)
注意:有时候你会发现添...
                                    网上编译osgearth的过程很多,这里就不再做记录了,只把编译过程中遇到的问题记录下来,以便以后有人再次遇到同样的问题,不用再走弯路。
一、编译环境
Vs2013、Qt5.7、osg3.2、osgearth2.7
二、cmake生成vs时的警告
CMake Warning (dev) in src/osgEarthQt/CMakeLists.txt:
Policy CMP0043 is
                                    以前做 NDK 开发都是基于 Android.mk、Application.mk 来构建项目的,但从 AS 2.2 之后便开始采用 CMake 的这种方式来构建,采用 CMake 相比与之前的 Android.mk、Application.mk 方便简单了许多。上面的例子看不出有啥优势,甚至说还不如用 gcc hello.cpp -o hello 来得快,但像 FFmpeg 、OpenCV 等等,类似这样复杂的项目,我们敲命令去构建项目是很麻烦的。音视频的播放,在线直播,音视频通话开发,后面可能都得基于。
                                    首先需要把cmakelists补全:
运行错:terminate called after throwing an instance of ‘std::logic_error’
what():  basic_string::_M_construct null not valid
解决方法:
打开终端创建build
需要输入图片路径,否则是空指针
之后发现错:
Failed to load module “canberra-gtk-module”
解决方法:
在终端输入: sudo apt-get ins