[置顶]用Eclipse CDT + CMake构建跨平台工程(VC/GCC)
标题的作用是想告诉搜索引擎,Eclipse CDT不但可以用于GCC,MinGW,也可以用于VC编译器。
这个文章是在这两天配置好了跨平台的CDT环境后的一个超级简短总结,有问题,就在这个文章后面留言吧,我如果会的话,就会回复的。
1. 不管是Windows平台,还是Linux平台,都只需要安装最基本的Eclipse+CDT环境:

通过上面的Other Downloads去下载Platform Runtime Binary,50MB左右。在Linux下解压后,如果装了JRE,直接就是绿色版!
2. 通过Install New Software来安装CDT,去除一些你用不到的组件,可以提速。
2. 通过Install New Software来安装CDT,去除一些你用不到的组件,可以提速。
3. 跨平台工程需要Makefile工程,强烈建议使用CMake来生成Makefile.参考:
http://www.cmake.org/Wiki/CMake:Eclipse_UNIX_Tutorial
4. 通过一个构建变量${pmake}为不同的平台设置不同的make主程序,例如Windows下设置为nmake。
5. 开启Discovery选项,这样GCC/MinGW都可以在编译一次后,自动找到搜索头文件的路径。
6. 为Windows平台创建INCLUDE、LIB、PATH环境变量(在Eclipse中创建),并把他们加入到工程中。Linux下不需要。
7. 好好利用Make Target,功能强大,例如生成Makefile的命令:cmake -E chdir ${ProjDirPath}/build cmake -DCMAKE_BUILD_TYPE=Debug ..
8. 运行make的命令:cmake -E chdir ${ProjDirPath}/build ${pmake}
9. 支持WinDbg调试的命令:cmd ${windbg} ${ProjDirPath}/build/${ProjName},其中${windbg}要自己设置:/C "${eclipse_home}/build/share/windbg/windbg.exe"
10. 可以在Eclipse CDT中配置多个编译器,只要把MinGW的bin目录加入PATH环境变量即可,例如我的:${eclipse_home}/build/bin;${eclipse_home}/build/gcc/bin;
11. 快捷键选用VS风格,这样和WinDbg的风格也一样,比较顺手,尤其是调试的时候。
12. 把代码完成键的Alt+/改成Shift+Space,要顺手的多!
13. 给一个CMakeLists.txt的示例:
- project(demo_01)
- cmake_minimum_required(VERSION 2.8)
- if(UNIX OR MINGW)
- set(CMAKE_VERBOSE_MAKEFILE ON)
- endif()
- if(MSVC)
- set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /MTd")
- foreach(flag_var
- CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
- CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO)
- if(${flag_var} MATCHES "/MD")
- string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
- endif()
- endforeach()
- endif()
- aux_source_directory(. SRC_LIST)
- include_directories(..)
- add_executable(demo_01 ${SRC_LIST})
...省省吧,累了。
总结:
Eclipse CDT 7.0的功能比之前的CDT又强大了很多!在开源的IDE中,CDT的功能是最强大的!
洗洗睡了!
2011-02-16补充:
1. 如果要开启多核编译,VC编译器可以使用JOM:
http://qt.gitorious.org/qt-labs/jom
2. 为了更好的编辑CMakeLists.txt,需要安装一个CMakeEd插件:
http://cmakeed.sourceforge.net/
3. 如果使用我提取的VC10编译器时频繁出现mt.exe崩溃,则需要安装.NET框架2.0版,这里有绿色版下载:
http://download.youkuaiyun.com/source/1737071
4. CDT对模板的解析功能强的让人惊叹!
5. 加入启动提速功能:修改eclipse目录下的eclipse.ini文件,增加如下内容,可提速2~5秒!
- -Xverify:none
- -Xms512m
- -Xmx512m
- -XX:PermSize=128m
- -XX:+UseParallelGC
2011-02-17补充:
11. 快捷键选用VS风格,这样和WinDbg的风格也一样,比较顺手,尤其是调试的时候。
第11条今天被我否定了:因为如果选择了它,会丢失一些很有用的Default状态下才启用的快捷键,例如: Ctrl+Tab切换头文件和源文件,Ctrl+Shift+F格式化代码等。仔细想想,Eclipse能够这样设置,自然是有其道理,所以信任Eclipse,准备把快捷键的习惯也改成Eclipse风格!
另外,6.24正式发布的8.0版很给力啊:
http://wiki.eclipse.org/CDT/User/NewIn80
2011-06-26更新