存档

  • VC 的预定义宏 MSDN 参考

    转存 VC 的预定义宏(Predefined Macros)的 MSDN 参考。这些预定义宏在 VC 的编译器 cl 中产生(可用 /D 选项定义新的宏),或是在 MS 的 C/C++ 标准库/RT 库的头文件中定义,多半的作用是编译或运行时环境的判定,其中有些是标准 C/C++ 规范规定的,比如:
    __cplusplus,__DATE__,__FILE__,__LINE__ 等。
    有些是 cl 和 MS C/C++ RT 特定的,比如:_MSC_VER。例如这样使用 _MSC_VER,判定 cl 编译环境的版本:

    2010年4月1日 | 归档于 C/C++ 编程语言, Windows 程序开发, 开发工具
  • Eclipse 各种集成包的区别

    Eclipse 环境有各种开发环境、语言工具的集成包。我们通常说的 Eclipse 平台叫 Eclipse Classic,它是所有其它 Eclipse 平台的基础。Eclipse Classic 和各种语言和开发插件进行组合后,会有很多特定的集成包(Eclipse Packages),我们工作中实际使用的就是这些专项的开发环境,它们在 Eclipse Downloads 中下载。比如,和 CDT 结合后称为 Eclipse IDE for C/C++ Developers,和 PDT 结合后称为 Eclipse for PHP Developers,而 Eclipse IDE for Java EE Developers 这个包则包含大多数的 Java 和 Java EE 开发插件。

    2010年3月22日 | 归档于 开发工具
  • Eclipse CDT 实现符号与路径自动发现的幕后:gcc 的 -E 选项

    上接这篇:Cygwin GCC 的 Makefile 工程在 Eclipse CDT 中配置符号与路径自动发现方法。说说 CDT 实现符号与路径自动发现的方法,这是我无意中看到 CDT 的符号与路径发现配置报错时明白的。以前总觉得 CDT 的这个功能很酷,觉得 CDT 内置一个 C/C++ 语法分析器,用它对源码(及其依赖源码)进行扫描得到宏定义(符号)的,宛然一个源码预处理过程。实际上,确实是通过对源码进行预处理得到符号和路径信息,不过不是 CDT,而是 gcc 编译器:是靠 gcc 的 -E 选项,预处理展开一个哑源文件,最后得到内置的宏定义,和缺省的 include 路径等。CDT 只是对这些结果做个前端分析罢了。
    例如,我在 /src/test 中有个 workspace,里面的 C/C++ 工程在编译生成时,CDT 就会用下面命令,产生宏定义和路径信息,以便 CDT 做源码符号索引:

    # C 源码的内置宏和路径
    gcc -E -P -v -dD /src/test/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c

    # C++ 源码的内置宏和路径
    g++ -E -P -v -dD /src/test/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp

    specs.c、specs.cpp 是什么?只是包含一个换行符 0x0A 的空文件,做预编译展开时的卫生纸用。

    2010年3月16日 | 归档于 开发工具
‘开发工具’ 分类的存档