摘要:在cmake脚本中,设置编译选项可以通过add_compile_options命令,也可以通过set命令修改CMAKE_CXX_FLAGS或CMAKE_C_FLAGS。 使用这两种方式在有的情况下效果是一样的,但请注意它们还是有区别的: add_compile_options命令添加的编译选项是针对
阅读全文
随笔分类 - cmake/autotool
摘要:用途:提供一些列表操作 list(LENGTH <list><output variable>) list(GET <list> <elementindex> [<element index> ...] <output variable>) list(APPEND <list><element> [
阅读全文
摘要:针对同一动态组件的不同版本链接和加载。一、概念 DLL HELL字面意思是DLL"灾难",是由于com组件(动态库)升级引起的程序不能运行的情况。 原因 有三种可能的原因导致了DLL Hell的发生: 一是由使用旧版本的DLL替代原来一个新版本的DLL而引起的。这个原因最普遍,是Windows 9X
阅读全文
摘要:[转]https://blog.csdn.net/zhanglianpin/article/details/50491958 我们在linux下开发项目,有时会对外提供动态库,像***.so.1.0.0这样子的文件,另外提供相应的头文件。用户拿到动态库和头文件说明,就可以使用动态库里的functio
阅读全文
摘要:http://www.cppblog.com/wolf/articles/74928.html http://www.cppblog.com/wolf/articles/77828.html http://www.jb51.net/article/34990.htm 1.概念和区别: 静态库就是在编
阅读全文
摘要:我一直在寻找便携式方式来强制CMake启用编译器的C99功能,以避免以下 gcc错误: error: ‘for’ loop initial declarations are only allowed in C99 mode for (int s = 1; s <= in_para->StepNumb
阅读全文
摘要:在文件 CMakeLists.txt添加下面一条语句 add_definitions("-Wall -g")
阅读全文
摘要:一种是比较常见的全局设置 set(CMAKE_C_FLAGS "-std=c99") 另外一种是针对某个target设置,这样不同的target之间可以不受影响 add_executable(BiquadFilter biquad_filter.c) set_property(TARGET Biqu
阅读全文
摘要:cmake_minimum_required(VERSION 3.11) define_source_files() Project(CmakeTest)aux_source_directory(. src)#add_executable(project1 ${src}) #编译为可执行程序#add
阅读全文
摘要:CMake 手册详解 来源 http://www.cnblogs.com/coderfenghc/tag/cmake/ 公司的一个项目使用CMake作为跨平台构建工具;业务有需求,当然要好好研读一下官方的技术手册。目前的计划是先把官方手册翻译一下,了解清楚CMake中的各种命令、属性和变量的用法。同
阅读全文
摘要:目录 1. 准备源文件 2. 创建目标库文件 3. 链接库文件 4. 静态库和共享库的区别 1. 准备源文件 包含: CMakeLists.txt Message.cpp Message.hpp hello-world.cpp 详见: https://github.com/dev-cafe/cmak
阅读全文
摘要:继续完善Hello World,建立它的共享库, 包括静态库和动态库。 本节的任务: 1,建立一个静态库和动态库,提供HelloFunc函数供其他程序编程使用,HelloFunc 向终端输出Hello World字符串。 2,安装头文件与共享库。 3, 编写一个程序使用创建的共享库(静态库和动态库)
阅读全文
摘要:在工程搭建时,可能会有将静态库链接成动态库的需求,如出于代码保护的角度,某些模块会发布.a扩展名的静态库,我们要将多个这样的静态库链接成一个动态库。但与直接link目标文件不同的是,ld以默认参数执行时,并把静态库中没有用到的函数过滤掉,导致生成的so并未包含所要的函数,因此要加上--whole-a
阅读全文
摘要:原文:cmake 添加头文件目录,链接动态、静态库 Table of Contents 1. 添加头文件目录INCLUDE_DIRECTORIES 2. 添加需要链接的库文件目录LINK_DIRECTORIES 3. 查找库所在目录FIND_LIBRARY 4. 添加需要链接的库文件路径LINK_L
阅读全文
摘要:这里引用一篇博文cmake教程在看这篇博文前我整理了一些基础知识,如果觉得可以请收藏 C_INCLUDE_PATH(for C header files)和CPLUS_INCLUDE_PATH(for C++ header files)的环境变量是指明头文件的搜索路径,此两个环境变量指明的头文件会在
阅读全文
摘要:from:https://www.hahack.com/codes/cmake/ 从实例入手,讲解 CMake 的常见用法。 什么是 CMake All problems in computer science can be solved by another level of indirectio
阅读全文
摘要:前言 一个大型的工程往往包含很多模块,构建时候可以自主选择需要使用的模块,这里模拟一个任务,实现一个求指数的模块,用户可以在CMakeLists.txt文件中自由配制是否使用该模块,如果使用该模块,则需要在config.h配置文件中增加相应的宏定义 准备工作 创建sample8工程,新增Math目录
阅读全文
摘要:目录 目录 1 前言 1 方法 1 附1:链接静态库的顺序问题 2 附2:再议GCC编译时的静态库依赖次顺问题 3 附3:gcc链接参数--whole-archive的作用 4 附4:让有些“-l”链接静态库,而另一些链接共享库? 6 附5:相关博文 6 前言 C/C++程序的许多同学被静态库的依赖
阅读全文
摘要:通过增加编译宏实现条件编译 ADD_DEFINITIONS(-D宏名称 -D宏名称......) camke文件如下: cmake_minimum_required(VERSION 2.8) PROJECT (hello) SET(SRC_LIST main.c) MESSAGE(STATUS "T
阅读全文
摘要:罗列一下cmake常用的命令。 CMake支持大写、小写、混合大小写的命令。 1. 添加头文件目录INCLUDE_DIRECTORIES 语法: include_directories([AFTER|BEFORE] [SYSTEM] dir1 [dir2 ...]) 它相当于g++选项中的-I参数的
阅读全文