- 博客(11)
- 资源 (3)
- 收藏
- 关注
原创 cmake:环境变量(environment variable)读写和if判断
cmake中对环境变量读写都是通过ENV前缀来访问环境变量 读取环境变量则要使用 $ENV{JAVA_HOME}这样的格式 写环境变量如下:set( ENV{PATH} /home/martink )if语句判断环境变量是否定义要用下面的格式if(NOT DEFINED ENV{JAVA_HOME}) # 没有找到JAVA_HOME环境变量 message(FATAL_ERRO
2016-06-27 17:08:23 46967 1
原创 cmake:EXCLUDE_FROM_ALL的用处
cmake 的add_library,add_executable,add_subdirectory等命令都有一个EXCLUDE_FROM_ALL参数. 这个参数的作用根据cmake官网的解释就是如果某个target或subdirectory被设置为EXCLUDE_FROM_ALL属性,那么这个target(或这个subdirectory中的所有target)就会被排除在all target列表之
2016-06-25 17:09:34 13098
原创 cmake设置msvc的运行库(runtime library)塈指定openjpeg使用静态库
cmake这个跨平台的make工具功能已经很强大了,但它也有不足的地方,就是本文的标题。 在用cmake生成NMake的Makefile或visual studio的.sln时,如何指定运行库(/MD /MT)? 原本,我以为可以在CMAKE的手册中找到一个command或PROPERTY或VARIABLE,简单的调用或设置一下就可以了,很遗憾,把整个CMAKE manual翻了几遍也没找到,没
2016-06-22 17:04:11 7549
原创 nmake(vs2015)命令行编译libjpeg-turbo(x86/amd64)
很久之前写过一篇博客《mingw(gcc)编译libjpeg-turbo》,介绍了windows下用mingw编译libjpeg-turbo的过程。 当时对cmake的使用并不非常熟悉,对msvc的命令行编译也不在行,所以还不会用msvc编译libjpeg_turbo源码,所以只能从暂时libjpeg_turbo的官网(http://libjpeg-turbo.virtualgl.org/)下载...
2016-06-22 11:50:12 6958 3
原创 cmake:设置编译选项的讲究(add_compile_options和CMAKE_CXX_FLAGS的区别)
在cmake脚本中,设置编译选项可以通过add_compile_options命令,也可以通过set命令修改CMAKE_CXX_FLAGS或CMAKE_C_FLAGS。 使用这两种方式在有的情况下效果是一样的,但请注意它们还是有区别的: add_compile_options命令添加的编译选项是针对所有编译器的(包括c和c++编译器),而set命令设置CMAKE_C_FLAGS或CMAKE_CX
2016-06-22 09:53:48 121426
原创 msvc/gcc:中用#pragma指令关闭特定警告(warning)
在使用一些第三方库或源码的时候,经常会遇到编译时产生warnings情况,这些warning不是我们自己的代码产生的,当然也不好去修改,但每次编译都显示一大堆与自己代码无关的警告也着实看着不爽,而且还有可能造成自己代码中产生的警告被淹没在多过的无关警告中,而被忽略掉的情况。 所以要想办法关闭这些第三方代码和库产生的警告。 关闭特定的warning可以在编译时通过命令行参数的方式指定,比如 gcc
2016-06-21 14:03:20 13196 1
原创 msvc交叉编译:使用vcvarsall.bat设置命令行编译环境
一直以来我只知道vc设置命令行编译环境的批处理命令是%VS140COMNTOOLS%/Common7/Tools下的vsvars32.bat,(%VS140COMNTOOLS%为定义vs2015公共工具程序位置的环境变量,命令行窗口输入set就能找到,vs2010的对应定义为%VS100COMNTOOLS%) 微软的官网上有这个命令的说明: https://technet.microsoft.c
2016-06-20 18:06:04 11365
原创 cmake:install制作简单的安装脚本
当我们制作用于二次开发的SDK的时候,用cmake的install命令制作一个安装脚本提供简单的SDK安装功能,在make结束后自动把文件分类放在不同的目录下,提供给用户,比只是把.h,.lib,.dll文件一股脑的复制给用户,让用户自己去配置要好得多。 下面的cmake脚本片段,展示了用cmake install命令实现的简单安装功能:########安装脚本########### 将生成的t
2016-06-19 12:46:47 13499
原创 LNK2019:win32下编写DLL,应用程序找不到DLL接口函数的一种情况
最近项目技术研究结束,开始代码封装,产品最终是以动态库的形式发布,于是开始整理代码,把原来以静态库方式编译的函数库改为动态库编译,动态库编译正常。 然后用编译测试程序(调用动态库的函数)时报错了, 2>test_detect.obj : error LNK2019: 无法解析的外部符号 “_declspec(dllimport) void __cdecl gdface::set_global_
2016-06-14 14:25:16 2190
原创 opencl:异步复制函数的注意事项(async_work_group_copy/async_work_group_strided_copy)
OpenCL中的内置函数async_work_group_copy和async_work_group_strided_copy用于实现全局内存(global memory)和本地内存(local memory)之间的异步数据复制,在某些情况下,使用异步复制(async copy)的方式在全局内存和本地内存之间复制数据比直接赋值的方式要方便。 下面是async_work_group_copy的函数说
2016-06-11 13:21:05 3386 2
原创 基于OpenCL的图像积分图算法改进
简单往要付出代价,这个代价可能很大,在opencl环境下编程,与我们在CPU上的传统编程思想有一些差异,这些差异看似微不足道,但往往细节决定成功,就是这些看似微不足道的差异导致同一种算法在GPU和CPU运行效果有着巨大的差别 之前写过一篇文章《基于OpenCL的图像积分图算法实现》介绍了opencl中积分图算法的基本原理(不了解积分图概念的朋友可以先参考这篇文章),并基于这个基本原理提供了kern
2016-06-08 10:25:01 5210 14
CMake脚本在ultraedit中的语法高亮支持
2023-06-08
erpcgen-windows-x86_64.zip
2020-09-17
windows下MSVC兼容的dirent.h
2016-03-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人