跨平台C++开源代码的两种常用编译方式
作者:朱金灿
来源:http://blog.csdn.net/clever101
跨平台C++开源代码为适应各种编译器的编译,采用了两种方式方面来适配。一种是makefile方式。以著名的空间数据格式解析库gdal为例,它就是提供了makefile来供各种编译器来编译。gdal主要提供了微软的VC编译器和GNU GCC编译器两种格式的makefile,在gdal的源码根目录可以找到makefile.vc和GNUmakefile两个makefile文件,其中makefile.vc为vc编译器的makefile,GNUmakefile为GNU GCC编译器的makefile。
另一种方式是使用CMake软件。CMake软件可以看作是根据源码来构建各个IDE厂商的工程格式。CMake是一个开源软件,CMake支持的部分IDE(编译器)如下图:
从上图可以看出CMake可以支持很多IDE。CMake软件的输出目录习惯是开源代码根目录下的cmake文件夹。
跨平台C++开源代码一般至少支持makefile或CMake方式进行编译,有些两种都支持。如何判断一个开源代码支持哪些方式?一个粗浅的办法是查看源码根目录下是否有以makefile命名的文件,如果有,很可能是支持makefile编译的,如果源码根目录下有CMakeLists.txt,应该是支持CMake方式进行编译。
跨平台C++开源代码的两种常用编译方式的更多相关文章
- 跨平台C++开源码的两种经常使用编译方式
作者:朱金灿 来源:http://blog.csdn.net/clever101 跨平台C++开源代码为适应各种编译器的编译,採用了两种方式方面来适配.一种是makefile方式.以著名的空间数据格式 ...
- Spring Cloud Config采用Git存储时两种常用的配置策略
由于Spring Cloud Config默认采用了Git存储,相信很多团队在使用Spring Cloud的配置中心时也会采用这样的策略.即便大家都使用了Git存储,可能还有各种不同的配置方式,本文就 ...
- 前台获取json未定义问题之两种常用解决办法
来自博客园的一位朋友解答: 为什么要 eval这里要添加 “("("+data+")");//”呢? 原因在于:eval本身的问题. 由于json是以”{}”的 ...
- spring 中常用的两种事务配置方式以及事务的传播性、隔离级别
一.注解式事务 1.注解式事务在平时的开发中使用的挺多,工作的两个公司中看到很多项目使用了这种方式,下面看看具体的配置demo. 2.事务配置实例 (1).spring+mybatis 事务配置 &l ...
- iOS- 网络访问两种常用方式【GET & POST】实现的几个主要步骤
1.前言 上次,在博客里谈谈了[GET & POST]的区别,这次准备主要是分享一下自己对[GET & POST]的理解和实现的主要步骤. 在这就不多废话了,直接进主题,有什么不足的欢 ...
- Windows校验文件哈希hash的两种常用方式
大家经常都到哪儿去下载软件和应用程序呢?有没想过下载回来的软件.应用程序或资源是否安全呢?在 Windows 10 和 Office 2016 发布当初,很多没权限的朋友都使用第三方网站去下载安装映像 ...
- 两种常用的jquery事件加载的方法 的区别
两种常用的jquery事件加载的方法 $(function(){}); window.onload=function(){} 第一个呢,是在DOM结构渲染完成以后调用的,这时候网页中一些资源还 ...
- springboot项目启动成功后执行一段代码的两种方式
springboot项目启动成功后执行一段代码的两种方式 实现ApplicationRunner接口 package com.lnjecit.lifecycle; import org.springf ...
- iOS- 网络请求的两种常用方式【GET & POST】的区别
GET和POST 网络请求的两种常用方式的实现[GET & POST] –GET的语义是获取指定URL上的资源 –将数据按照variable=value的形式,添加到action所指向的URL ...
随机推荐
- codevs 1497取余运算
1497 取余运算 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamon 题目描述 Description 输入b,p,k的值,编程计算bp mod k的值. ...
- starUML安装与破解
安装包百度云: 链接:https://pan.baidu.com/s/1oF_DH7Xh6yun6fFUDB2H3w 密码:1z7e 破解步骤:1. 首先打开你的starUML安装目录,并找到Lice ...
- APACHE2 服务器配置 (一)
1.安装 sudo apt-get install apache2 2.重启: sudo service apache2 resatrt 3.设置根目录: /var/www 设置方法: 2.2版: / ...
- Day03:集合、文件处理和函数基础
上节课复习: 1.总结 可变/不可变: 可变类型:list,dict 不可变类型:int,float,str,tuple ...
- read,write,accept,connect 超时封装
//read操作加上超时时间. 1 int read_timeout(int fd, void *buf, uint32_t count, int time) { ) { fd_set rSet; F ...
- 【旧文章搬运】关于在指定进程调用KeUserModeCallback的问题
原文发表于百度空间,2010-10-07========================================================================== 由于KeU ...
- linux内核中ip,tcp等头的定义(转)
一.MAC帧头定义 /*数据帧定义,头14个字节,尾4个字节*/typedef struct _MAC_FRAME_HEADER{ char m_cDstMacAddress[6]; //目的m ...
- c/c++面试12-18------关与sizeof那些事儿
12 使用sizeof计算普通变量所占空间大小 (1)不同数据类型所占字节数不同(32位 64位系统不同) int----->4 double----->8 char-------> ...
- builtin_shaders-5.3.4f1学习-Sprites-Default
Shader "Sprites/Default" { Properties { [PerRendererData] _MainTex ("Sprite Texture&q ...
- WPF Set connectionId threw an exception异常 以及重复dll的问题
1.DataOutputWPF 在显示norlib.Basic.UserConfigControl时 抛出异常 xmlparsingException : WPF Set connectionId t ...