配置 Eclipse CDT + MSVC + CMake,VS之外的另一选择!

「已注销」 「已注销」 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
一、安装
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

选中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中的下列两项:
Header Comments
Inactive Preprocessor Branches
13.保存时删除所有行的末尾空格:C/C++ > Editor > Save Actions
Remove trailing whitespace > 选中In all lines
14.单文件最大解析数目:C/C++ > Editor > Scalability,从5000改成50000
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程序

注:第一个Run用于控制台程序,第二个用于GUI程序;其中runner来自Code::Blocks,下载:http://code.google.com/p/jom-nmake/
19.配置外部工具
取消: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

其中CodeBlocks工具可加入参数:${selected_resource_loc} 可在启动时打开当前文件。
并将他们都添加到收藏夹中!
20.解决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
21.某些API无法解析的原因是出现无法识别的token,例如printf前面的__cdecl,解决办法是添加这些符号。
Project > Properties > C/C++ General > Paths and Symbols > Symbols,添加一个Name为 __cdecl ,Value为空的新符号。
22.启动提速:修改eclipse.ini,添加(替换)下列内容
-vmargs
-Xverify:none
-XX:PermSize=128m
-XX:+UseParallelGC
-Xms256m
-Xmx512m
23.如果64位eclipse频繁崩溃,可以考虑在eclipse.ini的最后添加(与Java的运行库有关,也可升级Java Runtime)
-XX:-UseCompressedOops

三、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")
add_definitions("/wd4819")
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(..)
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目录中不必要的资源。
...全文

相关推荐

40-基于89C52的量程自适应切换数字电压表设计(设计+说明+原理+仿真).rar

项目40-基于89C52的量程自适应切换数字电压表设计 资料包括Proteus仿真+Keil程序+Altium Designer原理图+软件安装包+参考设计说明书+答辩PPT+设计流程图,保证资料完整性! 功能: (1)本设计以89C52单片机为控制核心,具备高效数据处理与控制能力,可稳定驱动量程自适应切换数字电压表工作。 (2)采用ADC0808作为模数转换传感器,精准将模拟电压信号转换为数字信号,为电压测量提供准确数据基础。 (3)配备数码管显示器,清晰直观呈现测量得到的电压数值,方便用户快速读取电压信息,了解测量结果。 (4)具有自动量程切换功能,能依据输入电压大小智能调整量程,确保测量精度,拓宽电压测量范围。 (5)以待测电压输入为监测对象,资料包含原理图等,助力学生掌握量程自适应数字电压表设计要点。

创界工坊工作室

《人形机器人自适应形态学的变形覆盖建模与控制》,.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

海神之光

neo4j-community-5.26.32-unix.tar 自己编译 带neo4j-browser-2026.10.08+0.zip 解压可直接运行

neo4j-community-5.26.32-unix.tar 自己编译 带neo4j-browser-2026.10.08+0.zip 解压可直接运行

夢隨心逝

三电平ANPC并网逆变器+DPWMA调制控制+正负序分离+电网前馈控制仿真

内容概要:本资源系统性地提供了三电平ANPC并网逆变器的Simulink仿真体系,聚焦于DPWMA调制控制、正负序电流分离、电网电压前馈补偿、中点电位平衡控制以及虚拟同步发电机(VSG)等核心技术,构建了完整的构网型逆变器控制框架。内容涵盖弱电网条件下逆变器的正负序阻抗建模与稳定性分析,采用扫频法实现精确的序阻抗辨识,并集成低电压穿越(LVRT)、孤岛检测、预测电流控制等多种典型工况仿真模型。所有模块均配套参考文献与仿真文件,部分为SCI论文复现成果,兼具理论深度与工程实用性,适用于先进控制策略的研发与验证。; 适合人群:面向电力电子、新能源发电、微电网及电力系统自动化等方向的研究生、科研人员及从事并网逆变器控制算法开发的工程技术人员,要求具备扎实的电力系统基础知识和一定的Simulink建模能力。; 使用场景及目标:①支持高校与科研机构开展三电平ANPC逆变器先进控制策略的教学与研究;②服务于高水平学术论文的复现与创新性控制方法(如VSG、MPC、DPWMA)在复杂电网环境下的性能验证;③助力工程师进行并网逆变器控制系统的设计、优化与稳定性评估。; 阅读建议:建议结合所提供的参考文献与仿真模型同步学习,先掌握双闭环控制与中点电位调节的基本架构,再逐步深入正负序分离、阻抗建模与稳定判据等高阶内容,注重理论推导、参数设计与仿真实验之间的闭环验证与相互印证。

欢多天天写代码

LCL滤波三相并网逆变器仿真模型【附设计文档】

内容概要:本文提供了LCL滤波三相并网逆变器的Matlab/Simulink仿真模型及配套设计文档,系统阐述了LCL型滤波器在三相并网逆变系统中的建模方法与控制策略。内容涵盖LCL滤波器的参数设计原则、稳定性分析、有源阻尼技术、PI与准PR控制策略的应用、电流内环与电压外环的双闭环控制系统设计、SVPWM调制技术实现,以及并网系统的谐波抑制与动态响应特性分析。仿真模型完整呈现了逆变器并网全过程,结合设计文档详细说明了各模块的功能实现与参数整定流程,有助于深入理解新能源发电系统中并网逆变器的核心技术难点与工程实现路径。; 适合人群:适用于电力电子、电气工程及其自动化等相关专业的高校本科生、研究生,以及从事新能源发电、微电网、储能系统等领域的科研人员和工程技术人员;需具备电路理论、自动控制原理、电力电子技术和信号与系统等基础知识。; 使用场景及目标:①用于高校课程设计、毕业设计或实验教学中掌握三相并网逆变器的工作原理与控制方法;②支撑科研项目中对LCL滤波器设计、有源阻尼策略、并网稳定性等问题的研究与优化;③作为SCI论文复现、课题开发或工程项目前期验证的技术参考。; 阅读建议:建议结合所提供的设计文档与仿真模型同步学习,重点理解控制器参数整定逻辑、LCL参数设计约束条件及仿真波形的物理意义,建议动手调整关键参数以观察系统稳定性与动态性能的变化,从而深化对并网控制机制与工程实践要点的掌握。

抬头望远方
评论 14
收藏 已收藏
分享
返回顶部