cmake:Parameters to $<AND> must resolve to either '0' or '1'.

如下是一段简单的cmake脚本,用于设置target的编译选项: 当编译器为msvc,且CMAKE_BUILD_TYPE为Release时,为target添加-arch:AVX2编译选项, 当编译器为gcc,且CMAKE_BUILD_TYPE为Release时,为target添加-mavx2编...

2018-12-02 23:38:27

阅读数:684

评论数:0

cmake:gperftools性能分析工具find libprofiler 脚本暨profiler的静态连接问题

gperftools是一个很好用的性能分析工具,但没有提供官方的用于查找profiler库的cmake脚本,所以在基于cmake管理的项目中如果要在系统查找libprofiler库就就要自己写FindPROFILER.cmake脚本。 将脚本所在的文件夹加入CMAKE_MODULE_PATH,调用...

2018-11-07 00:40:07

阅读数:680

评论数:0

cmake-gui:创建可选列表ComboBoxes

就像一般的程序设计一样,在设计cmake脚本时有时我们希望一个变量的值限定在一个范围内。如下图,cmake-gui中用户可以选择输出日志的级别,肯定我们不希望用户乱输一气。 这时就要用到CACHE 的属性STRINGS # 日志输出级别 set(LOG_LEVEL FL_LOG_DEBUG CA...

2018-10-22 11:19:10

阅读数:50

评论数:0

cmake/gcc:strip缩减程序体积

方法1 cmake生成的Makefile中有一个target名为intall/strip可以将install的可执行程序执行strip,执行make help,就可以看到 $ make help The following are some of the valid targets for thi...

2018-10-20 14:14:48

阅读数:330

评论数:0

cmake:CMAKE_SYSTEM_PROCESSOR为空是怎么回事儿?

今天执行cmake创建Makefile的时候出了个怪事:CMAKE_SYSTEM_PROCESSOR的值为空 反复测试到到了原因:我在执行cmake时加了参数-DCMAKE_SYSTEM_NAME=Linux cmake . -G &quot;Eclipse CDT4 - Unix Ma...

2018-10-17 11:15:29

阅读数:138

评论数:0

cmake:FindLIBCONFIG.cmake查找libconfig的脚本find_package脚本

libconfig 是一个用于读取,操作和编写结构化配置文件的库。cmake并没有为libconfig提供find_package脚本。所以自己撸一个,实现跨平台的查找libconfig库 FindLIBCONFIG.cmake # - Find libconfig # - This mod...

2018-10-14 15:55:18

阅读数:46

评论数:0

cmake:pkg_check_modules(FindPkgConfig)的新特性IMPORTED_TARGET

pkg-config提供了一个统一的接口查询安装库的编译相关信息。它允许程序员和安装脚本工作没有明确详细的库路径信息。 和cmake相比,pkg-config是另一个独立的历史更悠久的library信息描述体系,cmake的FindPkgConfig Module的作用是调用pkg-config查...

2018-10-12 15:56:02

阅读数:155

评论数:0

cmake:macro,function中ARGV,ARGN参数的区别

cmake中的宏(macro)和函数(function)都支持动态参数 变量ARGC记录传入的参数个数 变量ARGV0,ARGV1,...顺序代表传入的参数 变量ARGV则是一个包含所有传入参数的list 变量ARGN也是一个包含传入参数的list,但不是所有参数,而是指macro/functio...

2018-10-12 15:25:38

阅读数:141

评论数:0

cmake:解决error LNK2005: void * __cdecl operator new(unsigned __int64) already defined in LIBCMTD.lib

当以/MT选项编译MFC项目时,会报下面的错误 1&amp;amp;amp;amp;gt;nafxcwd.lib(afxmem.obj) : error LNK2005: &amp;amp;amp;quot;void * __cdecl operator new(unsigned...

2018-10-10 16:34:04

阅读数:119

评论数:0

cmake:find_package查找pthread for win32的实现脚本

pthread for win32本身没有提供find_package脚本,cmake官方也没有提供,所以如果在cmake中要查找pthread for win32的库,就得自己实现,我参照FindJPEG.cmake自己写了个查找脚本FindPTHREADW32。 cmake官方提供的Find...

2018-10-09 00:05:41

阅读数:49

评论数:0

cmake:使用find_package查找libjpeg的静态库

我们知道简单的使用命令find_package可以查找指定的package. 对于经常会用到的 jpeg库turbojpeg,可以用find_package(JPEG REQUIRED)来查找。 find_package(JPEG REQUIRED) if(JPEG_FOUND) message...

2018-10-03 15:35:28

阅读数:138

评论数:0

cmake:LINK : error LNK2001: 无法解析的外部符号 WinMainCRTStartup

正在设计的一个C/C++混合语言项目是用cmake来管理编译的,用cmake生成的一个Visual Studio工程(c++)在编译时报了个错: LINK : error LNK2001: 无法解析的外部符号 WinMainCRTStartup 好是莫名其妙的问题,之前是没有这个问题的...

2018-09-11 22:18:50

阅读数:146

评论数:0

cmake error: includes target which requires target that is not in the export set,解决静态库的PRIVATE依赖导出问题

问题描述 最近在使用 interface libraries时出了个小问题。 示例如下,我希望target not_exported只是作为fse_cas_static 的private类的依赖库内部使用,不希望在config file中导出对它的依赖。 # 创建静态库 add_librar...

2018-04-29 14:18:12

阅读数:200

评论数:0

libjpeg-turbo 命令行编译脚本(MinGW/MSVC/linux)

libjpeg-turbo用CMAKE命令行编译还是很方便的 编译libjpeg-turbo需要NASM支持,编译前请下载并正确安装。 mkdir build cd build # 生成Makefile cmake -G &quot;MinGW Makefiles&quot; ...

2018-04-26 16:34:15

阅读数:353

评论数:0

cmake:Cannot specify include directories for imported target

问题描述 当使用INTERFACE选项调用target_include_directories命令向IMPORTED target添加include文件夹时会报如题的错误,过程描述: # 创建一个imported target MyLib add_library(MyLib SHARED...

2018-04-26 09:50:21

阅读数:222

评论数:0

cmake:用于查找libjpeg-turbo的module FindTurboJPEG.cmake

libjpeg-turbo的安装包没有提供用于CONFIG模式查找包(find_package)的cmake脚本,如果cmake脚本中要查找libjpeg-turbo库,就得自己写脚本。 于是我参照cmake 查找标准libjpeg库 的Module FindJPEG源码的写法实现了libjpe...

2018-04-25 22:23:20

阅读数:346

评论数:0

cmake:DEBUG_POSTFIX 根据debug/release类型指定target的输出文件名

在用cmake生成工程文件(such as Makefile)编译项目的时候,有时我们希望debug/release生成的二进制文件在文件名上有区别: 比如对于target project1,在debug模式编译的dll,希望在Debug模式下生成的文件名为project1_d.dll,以与re...

2018-04-18 00:05:57

阅读数:599

评论数:0

cmake:msvc分别对不同的target使用不同的运行库选项(/MT或/MD)

很久以前写过一篇关于cmake下为msvc设置/MT的文章: cmake:msvc编译第三方库时使用/MT静态库连接c/c++ runtime library 当时是为了解决用msvc编译时使用/MT连接static c library的问题。CMakeLists.txt中添加如下的代...

2018-04-17 13:49:58

阅读数:274

评论数:0

opencv:windows下调用cvShowImage等窗口显示函数报错:The function is not implement

自己在windows下用cmake成功编译了opencv 2.4.13.2,但在实际调用cvShowImage函数时报错了: OpenCV Error: Unspecified error (The function is not implemented. Rebuild the libr...

2018-02-08 17:38:40

阅读数:1233

评论数:0

Caffe: Could not find PROTOBUF Compiler(Profobuf 3.0 above)

在用cmake生成Caffe工程文件的时候,如果你使用Protobuf 3.0以上的版本,cmake可能会产生如下的报错: CMake Error at cmake/ProtoBuf.cmake:18 (message): Could not find PROTOBUF Compile...

2017-07-15 11:25:37

阅读数:4636

评论数:0

提示
确定要删除当前文章?
取消 删除