24,854
社区成员
发帖
与我相关
我的任务
分享
int a=0;
printf("请输入a的值:");
scanf("%d",&a);
一、安装
1. 安装CDT:http://www.eclipse.org/cdt/downloads.php
P2安装:http://download.eclipse.org/tools/cdt/releases/helios
只选择Analysis Framework和Development Platform即可!(8.0版Development Platform包含了Analysis)
2. 安装CMakeEd:http://sourceforge.net/projects/cmakeed/
P2安装:http://cmakeed.sourceforge.net/eclipse
二、配置
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
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
INCLUDE = ${eclipse_home}/include
LIB = ${eclipse_home}/lib
选中Replace native environment with specified one
10.代码风格:C/C++ > Code Style,从BSD/Allman派生一个
根据需要进行调整,并导出风格,方便以后导入!
11.加快提示速度:C/C++ > Editor > Content Assist
Delay(ms) = 50
12.自动代码折叠:C/C++ > Editor > Folding
选中Enable folding when opening a new editor
选中Enable folding of preprocessor branches
选中Enable folding of control flow statements
取消Initially fold these region types中不需要默认折叠的选项
13.单文件最大解析数目:C/C++ > Editor > Scalability,从5000改成50000
14.模板应用自定义代码风格:C/C++ > Editor > Templates = Use code formatter
15.解析器:C/C++ > Indexer
选中Index unused headers
尽量加大Cache limits的值,例如:50%, 512MB, 256MB
16.改用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
17.配置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程序
注:第一个Run用于控制台程序,第二个用于GUI程序;其中runner来自Code::Blocks。
18.配置外部工具
取消:Build > Build before launch 及 Common > Allocate Console 选项
CodeBlocks = ${eclipse_home}/share/CodeBlocks/CodeBlocks.exe
Depends = ${eclipse_home}/share/Depends/Depends.exe
ErrorShow = ${eclipse_home}/share/ErrorShow.exe
Find2Replace = ${eclipse_home}/share/Find2Replace.exe
QuickMSDN = ${eclipse_home}/share/QuickMSDN.exe
ResEdit = ${eclipse_home}/share/ResEdit/ResEdit.exe
Spy++ = ${eclipse_home}/share/Spyxx/Spyxx.exe
WinDbg = ${eclipse_home}/share/WinDbg/windbg.exe
并将他们都添加到收藏夹中!
19.解决CDT无法解析的token,例如无法识别:add_definitions(-D_UNICODE -DUNICODE)的定义或无法识别VC关键字__if_exists
#ifdef __CDT_PARSER__
#define UNICODE
#define _UNICODE
#define __if_exists(x) if (x)
#define __if_not_exists(x) if (!x)
#endif
三、CMake用法总结
1. 静态链接MSCRT及/W4警告
foreach(flag_var
CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
if(${flag_var} MATCHES "/MD")
string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
endif()
if(${flag_var} MATCHES "/W3")
string(REGEX REPLACE "/W3" "/W4" ${flag_var} "${${flag_var}}")
endif()
endforeach()
2. 启用UNICODE支持
add_definitions(-D_UNICODE -DUNICODE)
3. 添加通用选项
add_definitions("/Os")
4. 修改链接选项
set(CMAKE_LINK_FLAGS "${CMAKE_LINK_FLAGS} /MANIFEST:NO /OPT:REF /OPT:ICF")
5. 需要管理员权限,放在add_executable的后面
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS
"/MANIFESTUAC:\"level='requireAdministrator' uiAccess='false'\"
/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(..)
四、技巧
1. 正则表达式搜索C++风格注释://.*$
2. 正则表达式搜索C风格注释:/\*(.|[\r\n])*?\*/
3. 正则表达式搜索双字节字符(包括汉字在内):[^\x00-\xff]
4. 正则表达式搜索汉字:[\u4e00-\u9fa5]
5. 解决CDT无法识别某个关键字
五、附录
1. 64位eclipse如频繁崩溃,可以考虑在eclipse.ini的最后添加:-XX:-UseCompressedOops