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

阅读数:4

评论数:0

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

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

2018-10-17 11:15:29

阅读数:29

评论数: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

阅读数:3

评论数: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

阅读数:7

评论数:0

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

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

2018-10-12 15:25:38

阅读数:7

评论数:0

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

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

2018-10-10 16:34:04

阅读数:11

评论数: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

阅读数:20

评论数: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

阅读数:44

评论数:0

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

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

2018-09-11 22:18:50

阅读数:61

评论数: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

阅读数:154

评论数:0

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

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

2018-04-26 16:34:15

阅读数:239

评论数: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

阅读数:156

评论数: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

阅读数:228

评论数: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

阅读数:411

评论数: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

阅读数:145

评论数: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

阅读数:793

评论数: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

阅读数:4268

评论数:0

OpenBLAS:改进OpenBLASConfig.cmake生成方式,解除cmake脚本的路径依赖

当我们用OpenBLAS提供的Makefile进行编译,并用make install PREFIX=/you/install/path,安装到指定的路径时,你会发现,/you/install/path/lib/cmake/openblas/OpenBLASConfig.cmake文件中OpenBL...

2017-07-09 12:39:37

阅读数:2356

评论数:0

MSVC/MinGW中导入glog静态库的正确方式

在linux下使用glog静态库,编译连接时只要加上glog静态库文件(.a)就可以了,在windows环境,我也同样的办法在自己的项目中使用glog静态库,用msvc/mingw编译。。。然而链接时报错了,无数的错误都是找不到glog的符号(undefined reference)… 我的项目...

2017-07-06 17:29:33

阅读数:1125

评论数:0

cmake: 使用jom实现msvc工程并发编译提高速度(-j)

msvc提供的nmake并没有并发编译功能(类似gcc make的-j参数指定并发编译的任务数), 而第三方工具jom(http://wiki.qt.io/Jom)解决了这个问题,jom可以像gcc 的make一样 通过-j参数指定并发编译,让cpu全速运行,可以大大提高编译速度,节省大型项目的...

2017-06-28 21:43:30

阅读数:2262

评论数:0

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