<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.riguz.com/index.php?action=history&amp;feed=atom&amp;title=Mac_c%2B%2B_ide_recommandation</id>
	<title>Mac c++ ide recommandation - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.riguz.com/index.php?action=history&amp;feed=atom&amp;title=Mac_c%2B%2B_ide_recommandation"/>
	<link rel="alternate" type="text/html" href="https://wiki.riguz.com/index.php?title=Mac_c%2B%2B_ide_recommandation&amp;action=history"/>
	<updated>2026-06-02T23:50:37Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://wiki.riguz.com/index.php?title=Mac_c%2B%2B_ide_recommandation&amp;diff=3778&amp;oldid=prev</id>
		<title>Riguz：​Riguz移动页面Blog:Mac上的C++/CMake开发环境抉择至Mac c++ ide recommandation，不留重定向</title>
		<link rel="alternate" type="text/html" href="https://wiki.riguz.com/index.php?title=Mac_c%2B%2B_ide_recommandation&amp;diff=3778&amp;oldid=prev"/>
		<updated>2023-12-19T05:58:41Z</updated>

		<summary type="html">&lt;p&gt;Riguz移动页面&lt;a href=&quot;/index.php?title=Blog:Mac%E4%B8%8A%E7%9A%84C%2B%2B/CMake%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%8A%89%E6%8B%A9&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Blog:Mac上的C++/CMake开发环境抉择（页面不存在）&quot;&gt;Blog:Mac上的C++/CMake开发环境抉择&lt;/a&gt;至&lt;a href=&quot;/Mac_c%2B%2B_ide_recommandation&quot; title=&quot;Mac c++ ide recommandation&quot;&gt;Mac c++ ide recommandation&lt;/a&gt;，不留重定向&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2023年12月19日 (二) 05:58的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;zh-Hans-CN&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;（没有差异）&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wiki_db:diff:1.41:old-2661:rev-3778 --&gt;
&lt;/table&gt;</summary>
		<author><name>Riguz</name></author>
	</entry>
	<entry>
		<id>https://wiki.riguz.com/index.php?title=Mac_c%2B%2B_ide_recommandation&amp;diff=2661&amp;oldid=prev</id>
		<title>imported&gt;Riguz：​之前写过一篇文章[Visual Studio Code for C++ development on MacOS](../visual_studio_code_cpp_ide), 因为在Mac上一直没有找到免费且又比较好用的C++开发工具。但相比起Visual Studio而言，Visual Studio Code还是太简陋了。而今时不同往日了，现在比较倾向于使用CMake来构建项目，所以希望能支持CMake，所以又把各种开发工具尝试了一下。</title>
		<link rel="alternate" type="text/html" href="https://wiki.riguz.com/index.php?title=Mac_c%2B%2B_ide_recommandation&amp;diff=2661&amp;oldid=prev"/>
		<updated>2020-04-08T00:00:00Z</updated>

		<summary type="html">&lt;p&gt;之前写过一篇文章[Visual Studio Code for C++ development on MacOS](../visual_studio_code_cpp_ide), 因为在Mac上一直没有找到免费且又比较好用的C++开发工具。但相比起Visual Studio而言，Visual Studio Code还是太简陋了。而今时不同往日了，现在比较倾向于使用CMake来构建项目，所以希望能支持CMake，所以又把各种开发工具尝试了一下。&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;之前写过一篇文章[../visual_studio_code_cpp_ide Visual Studio Code for C++ development on MacOS], 因为在Mac上一直没有找到免费且又比较好用的C++开发工具。但相比起Visual Studio而言，Visual Studio Code还是太简陋了。而今时不同往日了，现在比较倾向于使用CMake来构建项目，所以希望能支持CMake，所以又把各种开发工具尝试了一下。&lt;br /&gt;
&lt;br /&gt;
= Eclipse CDT=&lt;br /&gt;
最近Eclipse-CDT又更新了一下，再次体验了一下，而且根据之前的经验，eclipse是直接支持CMake了的，所以是我的首选目标。&lt;br /&gt;
&lt;br /&gt;
== 导入CMake工程==&lt;br /&gt;
Eclipse CDT默认是支持CMake的，所以不用使用cmake生成eclipse的工程，直接就可以用。新建项目的时候是可以直接选用CMake项目的，那么，怎么导入一个现有的CMake工程呢？&lt;br /&gt;
&lt;br /&gt;
实际上，并不能使用&amp;quot;Import&amp;quot;来导入，而是要用&amp;quot;File -&amp;gt; New -&amp;gt; C/C++ Project -&amp;gt; Empty or Existing CMake Project&amp;quot;，然后就可以选择现有项目，导入到Eclipse中去了。是不是很坑？&lt;br /&gt;
&lt;br /&gt;
[[File:CDT_import_cmake_project.png|600px|Import project]]&lt;br /&gt;
&lt;br /&gt;
== 运行Google Test测试==&lt;br /&gt;
可以直接在Eclipse中运行Google Test，因为本身编译测试出来是一个应用，其实可以直接运行，但是eclipse集成的Unit Test可以让结果更好看一点：&lt;br /&gt;
&lt;br /&gt;
[[File:CDT_run_tests.png|600px|Run tests]]&lt;br /&gt;
&lt;br /&gt;
要运行这样的测试必须在Run Configuration中新建一个Unit Test的目标，并选择编译出来的test程序。&lt;br /&gt;
&lt;br /&gt;
== Mac下字体设置==&lt;br /&gt;
Eclipse在Mac下有一个问题就是默认的UI字体实在太小了，看着眼睛疼。&lt;br /&gt;
&lt;br /&gt;
[[File:CDT_smallfont.png|600px|默认字体]]&lt;br /&gt;
&lt;br /&gt;
有一个解决办法就是安装一个[https://www.bresink.com/osx/TinkerTool.html TinkerTool]，然后设置“Help tags”字体的大小。参见这个[https://bugs.eclipse.org/bugs/show_bug.cgi?id=56558 Bug]。&lt;br /&gt;
&lt;br /&gt;
[[File:CDT_14px.png|600px|更改后的字体]]&lt;br /&gt;
&lt;br /&gt;
== 缺点==&lt;br /&gt;
也许Eclipse最大的问题就在于调试了，动不动就卡死在96%上，或者好不容易进去了，却告诉你没有调试信息，要不要看汇编？尝试了很久也没有找到解决办法，除此之外，别的都能接受。但是这个问题很致命啊... 另外一个问题就是，（即使gdb支持的也不好），eclipse是不直接支持lldb的。&lt;br /&gt;
&lt;br /&gt;
= Visual Studio Code=&lt;br /&gt;
看来还是把希望寄托在Visual Studio Code上了。&lt;br /&gt;
&lt;br /&gt;
== 安装插件==&lt;br /&gt;
有以下的几个插件需要安装：&lt;br /&gt;
&lt;br /&gt;
* ms-vscode.cpptools: C/C++插件&lt;br /&gt;
* ms-vscode.cmake-tools: CMake tools&lt;br /&gt;
* webfreak.debug: Native debug插件&lt;br /&gt;
&lt;br /&gt;
安装完成之后，就可以打开CMake工程了。使用Command+Shift+P打开命令窗口，可以看到有很多CMake相关的选项：&lt;br /&gt;
&lt;br /&gt;
* CMake:Configure 配置支持CMake工程&lt;br /&gt;
* CMake:Clean 清理build&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
也可以通过系统下面的状态栏来设置，设置好之后，一般长这个样子：&lt;br /&gt;
&lt;br /&gt;
[[File:Vscode-cmaketools.png|600px|Visual Studio Code]]&lt;br /&gt;
&lt;br /&gt;
可以看到下面的状态栏已经集成了CMake的target。&lt;br /&gt;
&lt;br /&gt;
== 调试==&lt;br /&gt;
&lt;br /&gt;
=== 使用lldb-mi从状态栏启动调试===&lt;br /&gt;
调试有两种方式：一种是通过状态栏下面的&amp;quot;调试“图标启动的，不需要launch.json，但是默认情况下是不能工作的，需要做如下设置：&lt;br /&gt;
&lt;br /&gt;
新建`.vscode/settings.json`，将cpptools下面lldb-mi的路径配置进去，比如我的：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;cmake.debugConfig&amp;quot;: {&lt;br /&gt;
        &amp;quot;miDebuggerPath&amp;quot;: &amp;quot;/Users/hfli/.vscode/extensions/ms-vscode.cpptools-0.27.0/debugAdapters/lldb-mi/bin/lldb-mi&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Vscode-debug-lldb-mi.png|600px|lldb-mi]]&lt;br /&gt;
&lt;br /&gt;
但是这个玩意感觉支持很有限，我调试Googletest测试的的时候就直接挂掉了。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 创建launch.json调试===&lt;br /&gt;
&lt;br /&gt;
另外一个方式是创建launch.json，这样可以从左边的调试菜单那里开始：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;0.2.0&amp;quot;,&lt;br /&gt;
    &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;(gdb) Launch&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;cppdbg&amp;quot;,&lt;br /&gt;
            &amp;quot;request&amp;quot;: &amp;quot;launch&amp;quot;,&lt;br /&gt;
            // Resolved by CMake Tools:&lt;br /&gt;
            &amp;quot;program&amp;quot;: &amp;quot;${command:cmake.launchTargetPath}&amp;quot;,&lt;br /&gt;
            &amp;quot;args&amp;quot;: [],&lt;br /&gt;
            &amp;quot;stopAtEntry&amp;quot;: false,&lt;br /&gt;
            &amp;quot;cwd&amp;quot;: &amp;quot;${workspaceFolder}/build&amp;quot;,&lt;br /&gt;
            &amp;quot;environment&amp;quot;: [],&lt;br /&gt;
            &amp;quot;externalConsole&amp;quot;: true,&lt;br /&gt;
            &amp;quot;MIMode&amp;quot;: &amp;quot;gdb&amp;quot;,&lt;br /&gt;
            &amp;quot;MIDebuggerPath&amp;quot;: &amp;quot;/Users/hfli/.vscode/extensions/ms-vscode.cpptools-0.27.0/debugAdapters/lldb-mi/bin/lldb-mi&amp;quot;,&lt;br /&gt;
            &amp;quot;setupCommands&amp;quot;: [&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;description&amp;quot;: &amp;quot;Enable pretty-printing for gdb&amp;quot;,&lt;br /&gt;
                    &amp;quot;text&amp;quot;: &amp;quot;-enable-pretty-printing&amp;quot;,&lt;br /&gt;
                    &amp;quot;ignoreFailures&amp;quot;: true&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
但上面照样使用的是lldb-mi，有着跟上面的方法同样的问题。换成gdb后就更是奇怪的到处乱跳了。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 使用CodeLLDB插件===&lt;br /&gt;
&lt;br /&gt;
另一个选项就是使用CodeLLDB插件，安装完成之后配置`launch.json`：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;0.2.0&amp;quot;,&lt;br /&gt;
    &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;Launch debug&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;lldb&amp;quot;,&lt;br /&gt;
            &amp;quot;request&amp;quot;: &amp;quot;launch&amp;quot;,&lt;br /&gt;
            &amp;quot;program&amp;quot;: &amp;quot;${command:cmake.launchTargetPath}&amp;quot;,&lt;br /&gt;
            &amp;quot;args&amp;quot;: [],&lt;br /&gt;
            &amp;quot;stopAtEntry&amp;quot;: false,&lt;br /&gt;
            &amp;quot;cwd&amp;quot;: &amp;quot;${workspaceFolder}/build&amp;quot;,&lt;br /&gt;
            &amp;quot;environment&amp;quot;: []&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
这样终于不会在我调试googletest的时候死掉了，&lt;br /&gt;
&lt;br /&gt;
[[File:Vscode-debug-codelldb.png|600px|CodeLLDB]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Qt Creator=&lt;br /&gt;
&lt;br /&gt;
= KDevelop=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/microsoft/vscode-cmake-tools/issues/965 Can&amp;#039;t debug in Visual Studio Code #965]&lt;br /&gt;
* [https://vector-of-bool.github.io/docs/vscode-cmake-tools/debugging.html#debugging Target Debugging and Launching]&lt;/div&gt;</summary>
		<author><name>imported&gt;Riguz</name></author>
	</entry>
</feed>