配置 Eclipse CDT + MSVC + CMake,VS之外的另一选择!
一、安装
1. 安装Eclipse运行库:http://download.eclipse.org/eclipse/downloads,Build Type选Latest Release,打开Build Name为3.7的链接,下载Platform Runtime Binary中的Windows(51MB)和Windows (x86_64)(51MB)两个包,分别对应x86平台和x64平台。
2. 安装Java运行库:http://www.java.com
3. 安装CDT:http://www.eclipse.org/cdt/downloads.php
在线安装:http://download.eclipse.org/tools/cdt/releases/indigo
离线安装:http://download.eclipse.org/tools/cdt/builds
只选择C/C++ Development Platform即可!
4. 安装CMakeEd:http://sourceforge.net/projects/cmakeed
在线安装:http://cmakeed.sourceforge.net/eclipse
5. 安装CMake:http://www.cmake.org
二、配置
1. 字体设置:General > Appearance > Colors and Fonts
修改Basic的最后两项字体为Consolas,字体大小为11号
修改C/C++项字体为Consolas,字体大小为11号
2. 编辑器选项:General > Editors > Text Editors
选中Insert spaces for tabs
选中Show print margin,并设置Print margin column = 100
选中Show line numbers
修改Current line highlight为淡绿色
3. 快捷键:
Content Assist = Shift+Space
Word Completion = Alt+/
Line End = Ctrl+Enter
4. 工作空间设置:General > Workspace
选中Save automatically before build
选中Always close unrelated projects without prompt
5. 重构前自动保存:C/C++
选中Save all modified resources automatically prior to refactoring
6. 群组归类显示:C/C++ > Appearance
选中所有Group选项
7. 只构建有修改的项目:C/C++ > Build
选中Build configurations only when there are Eclipse resource changes within the project and its references
8. 构建变量:C/C++ > Build > Build Variables
WinDbg=${eclipse_home}/share/WinDbg/windbg.exe
9. 环境变量:C/C++ > Build > Environment
PATH = ${eclipse_home}/bin;${eclipse_home}/sdk/Irrlicht/Bin
INCLUDE = ${eclipse_home}/sdk/DirectX9/Include;${eclipse_home}/include;${eclipse_home}/sdk/Irrlicht/Include
LIB = ${eclipse_home}/sdk/DirectX9/Lib;${eclipse_home}/lib;${eclipse_home}/sdk/Irrlicht/Lib
15.模板应用自定义代码风格:C/C++ > Editor > Templates = Use code formatter
16.解析器:C/C++ > Indexer
选中Index unused headers
选中Index source and header files opened in editor
尽量加大Cache limits的值,例如:50%, 512MB, 256MB
17.改用nmake:C/C++ > New CDT Project Wizard > Makefile Project
Binary Parsers,选中PE Windows Parser
Build Settings,改Build command = cmd /C "if not exist Build (mkdir Build && chdir Build && cmake -G"NMake Makefiles" .. && nmake verbose=1) else chdir Build && nmake"
选中Build on resource save
18.配置Make Target
Build = cmd /C "if not exist Build (mkdir Build && chdir Build && cmake -G"NMake Makefiles" .. && nmake verbose=1) else chdir Build && nmake"
CMake_Debug = cmd /C "if not exist Build (mkdir Build && chdir Build && cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Debug .. && nmake verbose=1) else chdir Build && cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Debug .. && nmake"
CMake_MinSizeRel = cmd /C "if not exist Build (mkdir Build && chdir Build && cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=MinSizeRel .. && nmake verbose=1) else chdir Build && cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=MinSizeRel .. && nmake"
CMake_Release = cmd /C "if not exist Build (mkdir Build && chdir Build && cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release .. && nmake verbose=1) else chdir Build && cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release .. && nmake"
CMake_RelWithDebInfo = cmd /C "if not exist Build (mkdir Build && chdir Build && cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo .. && nmake verbose=1) else chdir Build && cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo .. && nmake"
Debug = ${WinDbg} ${ProjDirPath}/Build/${ProjName}
Open = explorer Build
Run = cmd /C chdir Build && nmake && start runner ${ProjName} // 适用控制台程序
Run = cmd /C chdir Build && nmake && ${ProjName} // 适用GUI程序
/SUBSYSTEM:WINDOWS")
6. 支持XP风格,放在add_executable的后面
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS
"/MANIFESTDEPENDENCY:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'"
/SUBSYSTEM:WINDOWS")
7. 添加头文件搜索路径
include_directories(..)
8. 添加库文件搜索路径
9. 指定程序入口
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "/ENTRY:mainCRTStartup")
10.不同编译类型链接不同库if(NOT ${CMAKE_BUILD_TYPE} MATCHES "Debug")
set(WINDOWS WIN32)
add_definitions(-D_IRR_STATIC_LIB_)
set(LIBRARIES Irrlicht_S.lib)
else()
set(LIBRARIES Irrlicht.lib)
endif()
#...
target_link_libraries(${PROJECT_NAME} ${LIBRARIES})
#其中WINDOWS变量的作用是:调试版附带控制台,发布版去除控制台
add_executable(${PROJECT_NAME} ${WINDOWS} ${SRC_LIST})
11.禁止生成manifest文件
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MANIFEST:NO")
12.编译资源文件
add_executable(${PROJECT_NAME} ${SRC_LIST} resource.rc)
四、技巧
1. 正则表达式匹配技巧C++风格注释://.*$
C风格注释:/\*(.|[\r\n])*?\*/
双字节字符(包括汉字在内):[^\x00-\xff]
汉字:[\u4e00-\u9fa5]
空行1:\n[\s| ]*\r 或者 \n\s*\r (利用Ctrl+H中的File Search > Replace可以删除空行)
空行2:^\s*\n (利用Ctrl+F中的Replace All可以删除空行)
特定数字:
^[1-9]\d*$ // 匹配正整数
^-[1-9]\d*$ // 匹配负整数
^-?[1-9]\d*$ // 匹配整数
^[1-9]\d*|0$ // 匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$ // 匹配非正整数(负整数 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ // 匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ // 匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ // 匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ // 匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ // 匹配非正浮点数(负浮点数 + 0)
特定字符串:
^[A-Za-z]+$ // 匹配由26个英文字母组成的字符串
^[A-Z]+$ // 匹配由26个英文字母的大写组成的字符串
^[a-z]+$ // 匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ // 匹配由数字和26个英文字母组成的字符串
^\w+$ // 匹配由数字、26个英文字母或者下划线组成的字符串
2. 最大化及恢复程序编辑窗口快捷键:Ctrl+M
3. 快速函数定位:Ctrl+O,通过Filters中添加*.h还可以排除头文件影响
4. 快速执行Make Target快捷键:F9 (Shift+F9供选择)
5. 打开快捷键列表:Ctrl+Shift+L,可用于查询、记忆快捷键
五、打包减肥
进入workspace目录,搜索*.pdom,删除所有Indexer的缓存;搜索.his,删除.history目录;搜索*.prefs,删除不必要的配置文件。
再清除workspace目录中不必要的资源。
[解决办法]
Eclipse出新版本了
Loaden你这个写了好几个系列了吧
[解决办法]
嘛玩意,我好像还在dev c++.