各C++编译器预定义配置

54 篇文章 3 订阅
46 篇文章 8 订阅
#ifndef XConfigH
#define XConfigH
/*
 2006-2-7 配置使用的宏
 zdhsoft
*/
/*
 关于VC的宏开关
*/
#ifdef _MSC_VER
 #define CONFIG_BCB  0
 #define CONFIG_BCB5  0
 #define CONFIG_BCB6  0
 #define CONFIG_BCB2006 0
 #define CONFIG_GCC  0
 #define CONFIG_GCC2X 0
 #define CONFIG_GCC3X 0
 #define CONFIG_GCC4X 0
 #define CONFIG_VC   1
 #if _MSC_VER == 1200
  #define CONFIG_VC5  0
  #define CONFIG_VC6  1
  #define CONFIG_VC2001 0
  #define CONFIG_VC2003 0
  #define CONFIG_VC2005 0
 #elif _MSC_VER == 1310
  #define CONFIG_VC5  0
  #define CONFIG_VC6  0
  #define CONFIG_VC2001 0
  #define CONFIG_VC2003 1
  #define CONFIG_VC2005 0
 #elif _MSC_VER == 1400
  #define CONFIG_VC5  0
  #define CONFIG_VC6  0
  #define CONFIG_VC2001 0
  #define CONFIG_VC2003 0
  #define CONFIG_VC2005 1
 #else
  #define CONFIG_VC5  0
  #define CONFIG_VC6  0
  #define CONFIG_VC2001 0
  #define CONFIG_VC2003 0
  #define CONFIG_VC2005 0
 #endif
#endif
#ifdef __BORLANDC__
 #define CONFIG_BCB   1
 #define CONFIG_VC   0
 #define CONFIG_VC5   0
 #define CONFIG_VC6   0
 #define CONFIG_VC2001  0
 #define CONFIG_VC2003  0
 #define CONFIG_VC2005  0
 #define CONFIG_GCC   0
 #define CONFIG_GCC2X  0
 #define CONFIG_GCC3X  0
 #define CONFIG_GCC4X  0

 #if __BORLANDC__  >= 0x0560 && __BORLANDC__ <= 0x0569
  #define CONFIG_BCB5  0
  #define CONFIG_BCB6  1
  #define CONFIG_BCB2006 0
 #elif __BORLANDC__ >= 0x0550 && __BORLANDC__ <= 0x0559
  #define CONFIG_BCB5  1
  #define CONFIG_BCB6  0
  #define CONFIG_BCB2006 0
 #elif __BORLANDC__ >= 0x0570
  #define CONFIG_BCB5  0
  #define CONFIG_BCB6  0
  #define CONFIG_BCB2006 1
 #else
  #define CONFIG_BCB5  0
  #define CONFIG_BCB6  0
  #define CONFIG_BCB2006 0
 #endif
#endif
#ifdef __GNUC__
 #define CONFIG_BCB   0
 #define CONFIG_BCB5   0
 #define CONFIG_BCB6   0
 #define CONFIG_BCB2006  0
 #define CONFIG_VC   0
 #define CONFIG_VC5   0
 #define CONFIG_VC6   0
 #define CONFIG_VC2001  0
 #define CONFIG_VC2003  0
 #define CONFIG_VC2005  0
 #define CONFIG_GCC   1
 #if __GNUC__ == 2
  #define CONFIG_GCC2X 1
  #define CONFIG_GCC3X 0
  #define CONFIG_GCC4X 0
 #elif __GNUC__ == 3
  #define CONFIG_GCC2X 0
  #define CONFIG_GCC3X 1
  #define CONFIG_GCC4X 0
 #elif __GNUC__ == 4
  #define CONFIG_GCC2X 0
  #define CONFIG_GCC3X 0
  #define CONFIG_GCC4X 1
 #else
  #define CONFIG_GCC2X 0
  #define CONFIG_GCC3X 0
  #define CONFIG_GCC4X 0
 #endif
#endif
/*
 调试开关,有些地方会用到调试信息。
*/
#define CONFIG_DEBUG    0
//多线程开关
#define CONFIG_MULT_THREAD 1
/*
 关于各种指定的开关
*/
/*
 关于CPU类型的开关
*/
#define TEST_CONFIG 0
#if TEST_CONFIG
#include <stdio.h>
void printf_cpp_define()
{
 printf("CONFIG_VC = %d/n",CONFIG_VC);
 printf("CONFIG_VC5 = %d/n",CONFIG_VC5);
 printf("CONFIG_VC6 = %d/n",CONFIG_VC6);
 printf("CONFIG_VC2001 = %d/n",CONFIG_VC2001);
 printf("CONFIG_VC2003 = %d/n",CONFIG_VC2003);
 printf("CONFIG_VC2005 = %d/n",CONFIG_VC2005);
 printf("CONFIG_BCB = %d/n",CONFIG_BCB);
 printf("CONFIG_BCB5 = %d/n",CONFIG_BCB5);
 printf("CONFIG_BCB6 = %d/n",CONFIG_BCB6);
 printf("CONFIG_BCB2006 = %d/n",CONFIG_BCB2006);
 printf("CONFIG_GCC = %d/n",CONFIG_GCC);
 printf("CONFIG_GCC2X = %d/n",CONFIG_GCC2X);
 printf("CONFIG_GCC3X = %d/n",CONFIG_GCC3X);
 printf("CONFIG_GCC4X = %d/n",CONFIG_GCC4X);
}
#endif
#endif
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IONIC 功能全演示 ===================== - 使用Ionic提供的UI 组件。Ionic本身是致力于建立统一的移动混合app构建平台,核心基础是Angular+Cordova。 - 通过Angular指令封装,以及预定的CSS,提供了开箱即用的HTML5 Mobile组件。 - 构建与开发支持,能够直接运行www目录下的index.html进行开发调试。同时也支持发布人员利用gulp构建输出到dist目录 - 利用gulp,同样演示了单元测试以及场景测试。 - [在线演示,内有地址二维码,可手机浏览](http://1.thm1118.sinaapp.com/static/ionic/www/index.html) ## 预览 ![信息卡片](screenshot/card.png) ![下拉刷新](screenshot/pullrefress.png) ![表单元素](screenshot/form.png) ![菜单](screenshot/menu.png) ![列表左滑按钮](screenshot/option.png) ![弹出层](screenshot/pop.png) ![tab](screenshot/tab.png) ![幻灯](screenshot/slide.png) ![图片水平滚动](screenshot/hscroll.png) ![毛玻璃效果](screenshot/blure.png) ![2000条数据搜索](screenshot/search.png) ![输入自动完成](screenshot/autocomplete.png) ![列表自动分组](screenshot/autogroup.png) ![媒体相册](screenshot/galaxy.png) ![chartjs统计图](screenshot/chartjs.png) ![百度统计图](screenshot/echat.png) ![图片延时加载](screenshot/imageload.png) ## 基础环境 纯webapp运行或演示,只需要一个 web server部署即可。 ## 目录结构说明 - www 目录:源码目录 - dist目录:构建输出目录 ## 利于开发,测试和打包部署的nodejs环境 简单开发可以不依赖nodejs环境。但是有了基于nodejs的javascript完整开发周期环境,会极大提升开发效率,保障质量。 - nodejs 最新版。 - 有些node包的安装需要c++编译,x86版本只需要 x86的C++编译器,windows上的x64 c++编译器需要特别设置。 - npm 会很慢,要么使用代理,要么使用国内镜像,比如 [淘宝镜像](http://npm.taobao.org/) , 使用淘宝镜像后,npm命令需要替换成cnpm命令。 - `npm install -g gulp` - `npm install -g ionic` - 如需编译sass的话,安装 [ruby](https://www.ruby-lang.org/zh_cn/),再执行 `gem install sass`(如遇到ssl错误,修改为http源:gem source -a http://rubygems.org/) - `npm install -g node-gyp` - 有的node包依赖python编译,安装 [python2.7](https://www.python.org/) - c++编译环境[MSVStudio 免费版](https://www.visualstudio.com/downloads/download-visual-studio-vs#d-express-windows-desktop).。注意根据studio不同版本指定 --msvs_version=2013 选项 - 安装项目开发依赖包,在项目根目录下运行 `npm install` ### “所见即所得”式开发 - 在项目根目录下运行 `ionic serve`,即可在www目录下开展“所见即所得”的方式开发 - 另外一种方式,在webstorm里对index.html 按debug运行,同样是“所见即所得”的方式开发 ### CROS支持 - 生产环境的 CROS支持要么使用jsonp技术,要么在服务端设置代理。 - 而开发环境下要么 基于不安全做法,服务端api 设置头`Access-Control-Allow-Origin:*" `,要么按如下便捷设置: 基于`ionic serve`, 可以在开发时使用本地代理。ionic.project 内设
一本介绍ARM开发工具,ADS的TXT类电子书,包含以下内容: 第1章 ARM调试方法和工具 1.1 调试原理概述 1.1.1 传统调试方法 1.1.2 ARM调试的特点 1.1.3 ARM调试原理 1.2 ARM调试方法 1.3 ARM开发工具介绍 1.3.1 ARM开发工具ADS 1.3.2 其他开发工具 第2章 ADS介绍 2.1 ADS的系统资源 2.1.1 ADS系统的组成 2.1.2 ADS系统所提供的文件 2.2 ADS系统中的文件类型 2.3 命令行方式和图形方式 2.3.1 命令行方式 2.3.2 图形方式 第3章 工程项目 3.1 工程项目和文件 3.1.1 建立一个工程项目 3.1.2 建立一个源文件 3.1.3 编辑新建立的源文件 3.1.4 把源文件加到工程项目中 3.2 工程项目管理 3.2.1 工程项目窗口 3.2.2 工程项目窗口中的级联菜单 3.2.3 工程项目管理 3.2.4 把文件分组 3.3 生成目标和生成选项 3.4 工程项目模板 3.4.1 关于ARM所提供的工程项目模板 3.4.2 把映像格式的工程项目转换成库工程项目 3.4.3 自己创建工程项目模板 3.5 复杂的工程项目 3.5.1 关于设置文件的搜索路径 3.5.2 关于生成目标 3.5.3 建立子工程项目 3.6 工程项目操作命令 第4章 文件和库 4.1 文件管理 4.1.1 文件管理方法 4.1.2 文件操作命令 4.1.3 文件比较 4.2 文件映射 4.3 系统头文件和用户头文件 4.4 ARM系统库 4.4.1 ARM运行时库(runtime libraries)概述 4.4.2 建立一个使用c/c++库的应用程序 4.4.3 建立一个不包含C库的应用程序 4.5 关于使用用户库 第5章 编辑器及浏览器 5.1 编辑器窗口功能介绍 5.2 搜索和替换操作 5.2.1 搜索和替换的方法 5.2.2 使用习惯表达式的一般规则 5.2.3 搜索操作命令 5.3 编辑操作命令 5.4 编辑器设置 5.4.1 编辑器设置面板 5.4.2 字体和制表符(Font&Tabs)设置面板 5.4.3 文本颜色(Text Colors)设置面板 5.4.4 为工程项目中的常用关键字设置颜色 5.5 浏览器 5.5.1 浏览器概述 5.5.2 浏览操作命令 5.6 浏览器视窗 5.6.1 分类视窗 5.6.2 目录视窗 5.6.3 分层视窗 5.7 浏览器应用 5.7.1 与浏览器有关的级联菜单 5.7.2 使用浏览器向导 第6章 汇编程序规则和汇编器应用 6.1 汇编程序规则 6.1.1 汇编语言程序的组成和格式 6.1.2 汇编语言程序中的表达式 6.1.3 预定寄存器 6.2 汇编器使用方法 6.2.1 在命令行方式中使用汇编器 6.2.2 在图形方式中使用汇编器 6.2.3 汇编器中的可选项 6.3 设置汇编器的可选项 6.3.1 与目标有关的可选项 6.3.2 与ATPCS有关的选项 6.3.3 汇编器特性选项 6.3.4 关于预定的有关选项 6.3.5 列表控制选项 6.3.6 附加选项 6.3.7 其他选项 6.4 汇编器应用 第7章 C/C++语言程序应用 7.1 编程规则 7.1.1 使用Pragmas 7.1.2 使用关键词 7.2 标准C/C++语言扩展 7.3 C/c++语言数据类型 7.4 C/C++语言和汇编语言混合编程 7.4.1 嵌入式汇编语言的用法 7.4.2 程序之间的相互调用 第8章 编译器的可选项设置及应用 8.1 编译器概述 8.1.1 编译器概述 8.1.2 编译器使用方法 8.1.3 ARM编译器在搜索文件时要注意的几个问题 8.2 编译器的可选项设置 8.2.1 Target and Source设置面板 8.2.2 ATPCS设置面板 8.2.3 Warnings设置面板 8.2.4 Errors设置面板 8.2.5 Debug/Optionization设置面板 8.2.6 Preprocessor设置面板 8.2.7 Code Generation设置面板 8.2.8 Extras设置面板 8.2.9 其他命令行可选项 8.3 编译器应用 第9章 ADS中其他选项设置 9.1 windows窗口操作命令 9.2 关于IDE的通用选项设置 9.2.1 Build Settings设置面板 9.2.2 IDE Extras设置面板 9.2.3 Plugin Settings设置面板 9.2.4 Shielded Folders设置面板 9.2.5 Source Trees源路径设置面板 9.3 关于生成目标的通用选项设置 9.3.1 Targget Settings设置面板 9.3.2 Build Extras设置面板 9.3.3 ARM Target设置面板 9.4 调试器选项设置 9.4.1 ARM Debugger设置面板 9.4.2 ARM Runner设置面板 9.4.3 ARM Features设置面板 9.5 操作命令设置和工具栏设置 9.5.1 设置菜单中的操作命令 9.5.2设置工具栏 9.6 关于VCS 第10章 ARM链接器 10.1 链接的一般概念 10.1.1 链接器的输入和输出 10.1.2 映像文件的加载和执行 10.1.3 输入段在映像文件中的排列顺序 10.2 链接器的使用方法 10.2.1 在命令行方式中使用链接器 10.2.2 在图形方式中使用链接器 10.3 ARM链接器选项设置 10.3.1 ARM链接器中的选项 10.3.2 Output设置面板 10.3.3 Option设置面板 10.3.4 Layout设置面板 10.3.5 Listings设置面板 10.3.6 Extras设置面板 10.3.7 在图形方式中没有使用的选项 10.4 链接器应用 10.5 地址映射过程和seatter描述文件 10.5.1 链接器的地址映射过程 10.5.2 seatter描述文件的结构 10.5.3 seatter描述文件的规则 10.5.4 seatter描述文件的应用 第11章 ADS中几个有特色的功能 11.1 在图形方式中使用命令行 11.1.1 via格式文件 11.1.2 ADS图形方式中的命令行表达窗 11.1.3 生成选项设置参数的导入和导出 11.2 symdefs格式文件 11.2.1 symdefs格式文件的内容 11.2.2 symdefs格式文件的作用 11.2.3 建立symdefs格式文件 11.3 代码转换工具fromELF 11.3.1 代码转换工具fromELF简介 11.3.2 fromELF命令行选项 11.3.3 fromELF工具在图形方式中的选项设置 11.3.4 fromELF实用工具应用 11.4 隐藏和重命名全局符号文件steering 第12章 ARM调试工具AXD介绍 12.1 ARM调试工具AXD介绍 12.1.1 几个基本概念 12.1.2 ARM调试工具AXD介绍 12.2 调试器的使用方法 12.2.1 armsd使用方法 12.2.2 A。XD使用方法 12.3 使用AXD调试用户程序 12.3.1 基本知识 12.3.2 控制程序运行的工具图标 12.3.3 控制程序运行的操作命令 12.3.4 在程序窗口中的级联菜单 12.4 关于调试器设置 12.4.1 调试目标的界面配置 12.4.2设置调试目标 12.4.3 配置处理器 12.5 AXD 00If的菜单选项 12.5.1 文件操作命令 12.5.2 搜索命令 12.5.3 与处理器相关的视窗 12.5.4 与目标系统相关的视窗 12.5.5 窗口管理命令 12.6 AXD II的数据格式 12.6.1 设置当前数据格式 12.6.2 设置默认的数据格式 12.7 主窗口中的工具图标 第13章 调试工具AXD应用 13.1 寄存器 13.1.1 寄存器的使用方法 13.1.2 寄存器视窗中的级联菜单i 13.2 存储器 13.2.1 存储器的使用方法 13.2.2 存储器视窗中的级联菜单 13.2.3 调试用户程序应用举例 13.3 在调试中使用断点 13.3.1 断点使用方法 13.3.2 断点管理级联菜单 13.4 观测项和观测点 13.4.1 使用观测项(Watch) 13.4.2 使用观测点(Watchpoint) 13.5 其他调试方法 13.5.1 调试时观察程序变量 13.5.2 在调试程序时使用符号表 13.6 Profiling功能 附录A 按菜单索引 A.1 按CodeWarriror IDE 中的菜单索引 A.2 按AXD 中的菜单索引 附录B 术语解释 参考文献
C 和 C++ 语言都是世界上最流行且使用最普遍的编程语言, 因此 Eclipse 平台(Eclipse Platform)提供对 C/C++ 开发的支持一点都不足为奇。 因为 Eclipse 平台只是用于开发者工具的一个框架,它不直接支持 C/C++;它使用外部插件来提供支持。 本文将向您演示如何使用 CDT — 用于 C/C++ 开发的一组插件。CDT 项目(有关链接, 请参阅本文后面的 参考资料一节)致力于为 Eclipse 平台提供功能完全的 C/C++ 集成开发环境(Integrated Development Environment,IDE)。 虽然该项目的重点是 Linux,但它在可使用 GNU 开发者工具的所有环境(包括 Win32(Win 95/98/Me/NT/2000/XP)、QNX Neutrino 和 Solaris 平台)中都能工作。 CDT 是完全用 Java 实现的开放源码项目(根据 Common Public License 特许的),它作为 Eclipse SDK 平台的一组插件。这些插件将 C/C++ 透视图添加到 Eclipse 工作台(Workbench)中, 现在后者可以用许多视图和向导以及高级编辑和调试支持来支持 C/C++ 开发。 由于其复杂性,CDT 被分成几个组件,它们都采用独立插件的形式。 每个组件都作为一个独立自主的项目进行运作,有它自己的一组提交者、错误类别和邮件列表。 但是,所有插件都是 CDT 正常工作所必需的。 下面是 CDT 插件/组件的完整列表: 主 CDT 插件(Primary CDT plug-in)是“框架”CDT 插件。 CDT 功能 Eclipse(CDT Feature Eclipse)是 CDT 功能组件(Feature Component)。 CDT 核心(CDT Core)提供了核心模型(Core Model)、CDOM 和核心组件(Core Component)。 CDT UI是核心 UI、视图、编辑器和向导。 CDT 启动(CDT Launch)为诸如编译器和调试器之类的外部工具提供了启动机制。 CDT 调试核心(CDT Debug Core)提供了调试功能。 CDT 调试 UI(CDT Debug UI)为 CDT 调试编辑器、视图和向导提供了用户界面。 CDT 调试 MI(CDT Debug MI)是用于与 MI 兼容的调试器的应用程序连接器。 现在,让我们研究一下如何在实际应用程序中使用这些组件。图 1 显示了 Eclipse 中的 C/C++ 项目: 图 1. 在带有 CDT 插件的 Eclipse 中编辑 C/C++ 项目 安装和运行 CDT 在下载和安装 CDT 之前,首先必需确保 GNU C 编译器(GNU C compiler,GCC)以及所有附带的工具(make、binutil 和 GDB)都是可用的。 如果正在运行 Linux,只要通过使用适用于您分发版的软件包管理器来安装开发软件包。 在 Windows平台上,将需要安装 Cygwin 工具箱(请参阅 参考资料以获得链接)。Cygwin 是用于 Windows 的类 UNIX 环境,它包括 GCC 移植以及所有必需的开发工具,包括 automake 和 GNU 调试器(GNU Debugger,GDB)。Cygwin 是在 cygwin1.dll 库基础上构建的。Cygwin 的备用解决方案是 Minimalist GNU for Windows(MinGW)(请参阅 参考资料以获得链接)。 该工具是一组可免费获取、自由分发的特定于 Windows 的头文件和导入库,这些头文件和导入库与 GNU 工具集(它们允许您生成不依赖于任何第三方 DLL 的本机 Windows 程序)结合在一起。 如果您想要创建与 POSIX 兼容的 Windows 应用程序,那么 MinGW 是最佳选择。MinGW 甚至可以在 Cygwin 安装之上工作。 Solaris和 QNX要求您从因特网下载并安装其特定的 GCC、GNU Make binutils 和 GDB 移植(请参阅 参考资料以获得链接)。 假设您安装了适当的 Java SDK/JRE 和 Eclipse 平台 SDK,并且它们都正常运行。CDT 以两种“方式”可用:稳定的发行版和试运行版(nightly build)。 试运行版未经完全测试,但它们提供了更多的功能并改正了当前错误。 安装之前,请检查磁盘上是否存在先前版本的 CDT,如果存在,请确保完全除去它。 因为 CDT 没有可用的卸载程序,所以需要手工除去它。 为了检查先前版本是否存在,转至 CDT 插件所驻留的目录: eclipse/plugins 。 接着,除

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值