Eclipse 和 CDT 用于 C/C++ 程序
如何在 Eclipse 和 CDT 的帮助下编写 C/C++ 程序
引言
这是关于在 Eclipse 和 CDT 帮助下编写 C/C++ 程序的笔记。
背景
这篇笔记不是关于 C/C++ 或 makefile。它也不是关于面向对象的。它是关于 IDE 的。这是一篇关于在 Eclipse 和 CDT 帮助下编写 C/C++ 程序的笔记。我将使用 GNU GCC/G++ 和 make 来举例。我将给出 Linux 和 Windows 中的示例。我意识到这篇笔记变得不必要地冗长和复杂/繁琐,因为我只想通过示例回答以下简单问题。
- 编译 C/C++ 程序需要什么?
- 什么是
makefiles
? - C/C++ 需要 IDE 吗?
- 我可以使用哪个 Eclipse 包进行 C/C++ 开发?
- Eclipse 如何构建/编译 C/C++ 程序?
- Eclipse 中的构建配置是什么?
- Eclipse 中的 C/C++ 项目类型有哪些?
- Eclipse 中 C/C++ 项目的“构建产物”是什么?
- 什么是运行/调试启动配置?
- 当我们使用不受 Eclipse 控制的第三方库时,Eclipse 如何提供智能感知?
- 如果使用第三方库,我们需要告诉 Eclipse 什么才能让它为我们生成正确的“makefiles”?
- 如何在同一个 Eclipse 工作区中的一个项目引用另一个项目?
- 如果我在 Linux 中创建一个 C/C++ 项目,我可以顺利地将其转移到 Windows 吗?
- 从示例中,您认为使用 Eclipse 进行 C/C++ 开发最重要的概念是什么?
- 您对 Eclipse 作为 C/C++ 开发 IDE 的感受如何?
- 您还想让我们知道什么?
如果您没有足够的耐心,可以直接转到总结部分查看答案。如果您在自己的项目中遇到任何问题,可以返回查看详细信息。它将来可能会为您提供一些参考价值。所有附带的示例项目都在 Linux 中创建。如果您想在 Windows 中下载并尝试它们,您可能需要参考 示例 3 - Linux 和 Windows 之间的项目兼容性 部分。无论如何,让我们首先为示例准备好环境。
环境设置
Linux 环境
在大多数 Linux 系统中,环境默认已安装。但最好再次检查。在我的 Linux Mint 机器上,我注意到没有安装“g++”,所以我通过 sudo apt-get install g++
安装了它。在 Ubuntu/Mint 计算机上,您可以发出以下命令检查是否安装了“gcc”、“g++”和“make”。
which gcc
which g++
which make
如果它们已安装,which
命令会告诉您安装目录。如果未安装,您可以通过 sudo apt-get install build-essential
安装它们。
Windows 环境
在 Windows 系统中,GNU 的对应是 MinGW。您可以按照在线说明安装 MinGW。为简单起见,我使用提供的自动化 GUI 安装程序安装了 MinGW。安装后,您需要将 _C:\MinGW\bin_ 和 _C:\MinGW\msys\1.0\bin_(或您安装 MinGW 的任何文件夹)添加到 Windows Path
变量中。您可以使用以下命令检查安装:
gcc --help
g++ --help
make --help
根据 MinGW 文档,您应该避免安装路径中包含空格。
Eclipse IDE
Eclipse 是一个 Java 程序。它适用于 Linux 和 Windows。对于 C/C++ 开发,您可以使用 Eclipse IDE for C/C++ Developers,它与 CDT 打包在一起。您也可以使用 Eclipse Marketplace 在其他 Eclipse 包上安装 CDT。您可能需要参考此链接以确保 Eclipse 使用您想要的 Java 版本。在这篇笔记中,我使用 Eclipse IDE for C/C++ Developers Mars 1 来完成所有示例。
一个简单的 Makefile 示例
在大多数情况下,Eclipse 通过 makefiles
构建 C/C++ 程序。在开始使用 Eclipse 之前,手动构建一个 makefile
程序是有益的。附件中的 _makefile-example.zip_ 是最简单的 makefile
项目,它包含一个 C++ 源文件、一个 makefile
和一个空的 _build_ 目录,我们将在其中放置编译后的目标文件和可执行文件。
#include <stdio.h>
int main() {
printf("This is an make file example\n");
return 0;
}
CC=g++
BUILD=build
all: $(BUILD)/makefile-example
$(BUILD)/makefile-example: $(BUILD)/main.o
$(CC) -o $(BUILD)/makefile-example $(BUILD)/main.o
$(BUILD)/main.o: main.cpp
$(CC) -c -o $(BUILD)/main.o main.cpp
run: $(BUILD)/makefile-example
$(BUILD)/makefile-example
clean:
find $(BUILD) -type f -delete
如何使用 GNU make 是一个全面的主题。如果您致力于 C/C++ 开发,最终您将不得不通读这份文档。但对于本笔记,您应该了解以下内容:
- 在放置
makefile
的目录中,如果您发出make
或make all
命令,目标文件和可执行文件将构建到 _build_ 文件夹中; - 如果您发出
make clean
命令,目标文件和可执行文件将被删除。
下图显示 make run
命令构建了项目并执行了可执行文件。
示例 1 - 一个简单的可执行 Eclipse 项目
作为第一个 Eclipse 示例,我将创建一个简单的可执行项目。从 Eclipse -> **文件** -> **新建** -> **C++ 项目**,我们可以启动项目向导。
我将创建一个空的可执行项目。由于我是在 Linux 环境中创建项目,我选择 **Linux GCC** 作为工具链。为简单起见,我只在项目根目录中添加了一个 _main.cpp_ 文件。
#include <stdio.h>
int main() {
printf("This is a simple executable project\n");
return 0;
}
如果现在右键单击项目名称 -> **构建项目**,您会注意到 Eclipse 创建了一个 _Debug_ 目录。在 _Debug_ 文件夹中,您可以看到 makefile
(以及与 makefile
相关的几个 _.mk_ 文件)和名为 _an-executable-project_ 的可执行文件。
如果现在右键单击项目名称 -> **运行方式** -> **本地 C/C++ 应用程序**,您会看到可执行文件被执行。
通过这个简单的运行示例,我们准备好查看 Eclipse 如何管理 C/C++ 项目以回答以下问题。
- Eclipse 如何构建 C/C++ 程序?
- Eclipse 如何运行/调试已构建的可执行文件?
- **makefiles** 是如何生成的?
构建配置
现在右键单击项目名称 -> **属性** -> **C/C++ 构建**。我们可以看到构建设置。
构建设置工具是我们配置 Eclipse 如何构建应用程序的主要位置。单击 **管理配置...** 按钮,我们可以看到 Eclipse 为空的可执行项目创建了两个构建配置。
我们可以添加、删除、重命名构建配置。如果有一个以上的构建配置,我们可以设置其中一个为活动配置。活动构建配置是我们右键单击项目名称 -> **构建项目/清理项目** 时使用的构建配置。当我们添加新的构建配置时,我们会注意到文本“配置名称将用作文件系统中的目录名”。由于活动配置是 **Debug**,当我们构建项目时会创建 _Debug_ 文件夹,其中包含所有 Eclipse 生成的 makefiles
、目标文件和与 **Debug** 配置相关的可执行文件。
对于 **行为** 选项卡中的 **Debug** 配置,您会注意到 Eclipse 通过 make all
命令构建项目,并通过 make clean
命令清除项目。
我想借此机会就 **刷新策略** 选项卡添加一个额外的说明,该选项卡适用于所有 Eclipse 项目,而不仅仅是 C/C++ 项目。
在 Eclipse 中,**刷新** 的定义没有很好的文档。一般来说,Eclipse 试图获取项目中所有文件的所有信息,并尝试利用这些信息为我们提供尽可能多的便利,例如语法高亮、智能感知等。如果所有更改都通过 Eclipse 进行,这相对容易。但有时,文件可能会在 Eclipse 外部更改。例如,文件可能由其他程序更改,例如从源代码控制系统检出一些代码。Eclipse **刷新** 分析源文件以及可能的其他文件,以检查是否在 Eclipse 外部进行了任何更改,如果是,**Eclipse** 将尝试将更改纳入其控制。
启动配置
右键单击项目名称 -> **属性** -> **运行/调试设置**。我们可以看到启动配置。
在构建项目后,当我们右键单击项目名称 -> **运行方式** -> **本地 C/C++ 应用程序** 时,Eclipse 为我们创建了一个启动配置 an-executable-project
。我们可以添加、编辑和删除启动配置。
对于 an-executable-project
启动配置,我们可以看到以下内容
- 如果我们通过
an-executable-project
配置在 Eclipse 中运行项目,我们将运行 _Debug_ 目录中的 _an-executable-project_ 文件; - 启动配置与构建配置相关联。默认情况下,当我们在 Eclipse 中运行项目时,它将触发与关联构建配置的构建,以重建 _Debug_ 目录中的可执行文件。
我们知道每个构建配置都将可执行文件构建到其自己的目录中。我们应该确保启动配置中的可执行路径与构建配置匹配。否则,您会注意到即使您已更改了源代码,您仍在运行旧的可执行文件。如果您更改启动配置的关联构建配置,Eclipse 不会自动调整可执行路径。
配置 Makefile 的生成方式
在 _an-executable-project_ 中,您应该已经注意到 **自动生成 Makefile** 复选框。
- 如果创建
Executable
、"Static Library
" 或 "Shared Library
" 项目,此复选框将自动选中; - 如果创建
Makefile
项目,则表示您将自行创建makefiles
。但您随时可以改变主意并选中此复选框,让 Eclipse 为您生成makefiles
。
如果选中了 **自动生成 Makefile**,您可以通过右键单击项目名称 -> **属性** -> **C/C++ 构建** -> **设置** 来控制 makefiles
的生成方式。
对于简单的 an-executable-project
,我们不需要更改任何默认设置。如果您查看 Debug
构建配置,您会发现 Eclipse 默认将 -g3
添加到编译选项中,以便我们可以在调试模式下运行编译后的可执行文件。如果默认设置不符合您的需求,您可以随时更改设置,让 Eclipse 生成您想要的 makefiles
。
在 **构建产物** 选项卡中,您可以选择更改 **产物类型**。这些产物对应于 Eclipse 中的项目类型。如果要在项目创建后更改项目类型,可以在此处更改。生成的“makefiles
”中将为不同的产物类型添加不同的构建命令,以将项目构建成可执行文件、共享库或静态库。
对于构建配置,您可以更改 **构建类型**。只有选择“**外部构建器**”选项时,makefiles
才会在相应的构建目录中明确生成。重要的是要记住,关于 makefiles
生成方式的设置是基于每个构建配置进行配置的。
示例 2 - 静态库项目和项目引用
在此示例中,我将创建一个静态库项目。我还将创建一个可执行项目。此示例的目标是展示如何从可执行项目引用静态库。让我们首先创建静态库项目。
静态库项目
静态库项目名为 static-math-library
。项目创建后,我们可以右键单击项目名称 -> **属性** -> **C/C++ 构建** 查看构建配置。
我们应该看到 Eclipse 创建了两个构建配置,并且 **Debug** 是活动配置。如果我们进一步右键单击项目名称 -> **属性** -> **C/C++ 构建** -> **设置**,我们可以看到 makefiles
是如何生成的。
我们应该看到 makefiles
将使用 ar
命令将项目打包成一个 static
库。现在我们可以添加一个简单的类。_Math.h_ 文件已添加到 _header_ 目录中。
#ifndef HEADER_MATH_H_
#define HEADER_MATH_H_
namespace static_math {
class Math {
public:
Math();
virtual ~Math();
virtual int WeightedAdd(int i, int j);
};
}
#endif
_Math.cpp_ 文件已添加到 _src_ 目录。
#include "../header/Math.h"
namespace static_math {
Math::Math() {}
Math::~Math() {}
int Math::WeightedAdd(int i, int j) {
int w = 1;
return w * (i + j);
}
}
右键单击项目名称 -> **构建项目**,静态
库 _libstatic-math-library.a_ 将构建到 _Debug_ 目录中,因为 Debug
构建配置是活动的构建配置。
您可能需要注意,头文件和 _cpp_ 文件放在了不同的目录中。这将影响我们如何从即将创建的可执行项目引用 静态
库项目。
可执行项目
为了使用 static-math-library
,让我们创建一个可执行项目 static-math-executable
。项目创建后,让我们将 _main.cpp_ 文件添加到项目的根目录。
#include <stdio.h>
#include "Math.h"
int main() {
static_math::Math math;
int result = math.WeightedAdd(1, 2);
printf("The weighted addition is %d\n", result);
return 0;
}
保存 _main.cpp_ 文件后,我们会立即看到以下问题
为了引用 static-math-library
项目,我们需要做以下几点:
- 我们需要告诉 Eclipse 在哪里找到头文件,以便我们可以在文本编辑器中使用智能感知;
- 我们需要告诉 Eclipse 在哪里找到头文件,以便生成的
makefiles
知道如何添加正确的-I
选项来编译代码; - 我们需要告诉 Eclipse 在哪里查找
static
库和库的名称,以便生成的makefiles
知道如何添加正确的 "-L
" 和 "-l
" 选项来链接可执行文件。
配置项目引用
在 Eclipse 中,告诉 static-math-executable
项目在哪里找到头文件和 static
库最简单的方法是右键单击项目名称 **static-math-executable** -> **属性** -> **C/C++ General** -> **路径和符号** 并打开 **引用** 选项卡。
您可以检查所需的项目引用。您应该记住,该引用是基于每个构建配置进行配置的。对于 static-math-executable
项目中的 **Debug** 配置,我们选择引用 static-math-library
项目中的 **Debug** 配置。
如果我们现在查看 **包含** 选项卡,Eclipse 在我们配置构建配置的引用后,会自动将 static-math-library
项目的 _根_ 目录添加到 include
路径中。它希望在 static-math-library
项目的 _根_ 目录中找到所有头文件。
它还在 **库路径** 选项卡中添加了 static-math-library
的 _Debug_ 目录,它期望在此处找到 static
库。
最后,Eclipse 还将 static-math-library
添加到 **库** 选项卡中,它在链接可执行文件时会将其作为 -l
选项添加到 makefile
中。
手动修复“Includes”路径
由于我们已经添加了项目引用,您可能会期望我们可以构建 static-math-executable
。但不幸的是,当您构建它时,您会看到以下问题。
原因是 Eclipse 在 _Includes_ 路径中添加了 static-math-library
项目的根目录,但 _Math.h_ 文件位于 _header_ 目录中。我们需要将 _Includes_ 更改为 _header_ 目录。
现在我们可以右键单击项目名称 -> **构建项目** 来构建可执行文件。可执行文件构建完成后,我们可以右键单击项目名称 -> **运行方式** -> **本地 C/C++ 应用程序** 来运行可执行文件。
如果您现在对 _Math.cpp_ 进行一些更改,您会注意到您不需要分别构建 静态
库和可执行项目。您可以直接运行可执行项目,将触发一次完整的重新构建,因为项目引用告诉 Eclipse 如果 static-math-library
被修改,则全部重新构建。
示例 3 - Linux 和 Windows 之间的项目兼容性
到目前为止,所有示例项目都是在 Linux 中创建的。如果我们将它们复制到 Windows 中,看看它们如何工作会很有趣。在这个例子中,我将“示例 2”中的两个项目 static-math-library
和 static-math-executable
复制到 Windows 中。
- 在复制之前,我对这两个项目都运行了“清理项目”,并删除了所有与构建配置相关的目录,例如项目中的 _Debug_ 和 _Release_ 目录(如果存在);
- 通过删除 _Debug_ 和 _Release_ 目录,我强制 Eclipse 在项目加载到 Eclipse 后重新生成构建配置的
makefiles
; - 要在 Windows 中尝试这些项目,我需要确保在 Windows 中设置了
MinGW
。
在 Windows 中,我们可以使用一个“_EMPTY_”的“_workspace_”文件夹启动 Eclipse。启动 Eclipse 后,我们可以导入从 Linux 复制的两个项目。由于 static-math-executable
项目引用了 static-math-library
项目,所以我首先导入了 static-math-library
项目。由于这些项目已经是 Eclipse 项目,我通过 **文件** -> **导入...** -> **常规** -> **现有项目到工作区** 导入它们。
由于我们将在 Windows 中使用 MinGW
编译 C/C++ 代码,我们可以右键单击项目名称 -> **属性** -> **C/C++ 构建** -> **工具链编辑器** 来更改工具链。我们需要对这两个项目都执行此操作。
- 当前工具链已更改为 **MinGW GCC**;
- 当前构建器已更改为 **Gnu Make Builder**。
如果现在右键单击 static-math-executable
项目 -> **构建项目**,我们可以看到两个项目都成功构建。因为是在 Windows 上,所以可执行文件有一个 _exe_ 扩展名。
项目构建完成后,我们可以右键单击 static-math-executable
项目 -> **运行方式** -> **本地 C/C++ 应用程序** 来运行可执行文件。
并非所有 C/C++ 项目都能轻松从 Linux 迁移到 Windows。但对于此处所示的示例,转换非常顺利和愉快。
摘要
我们现在准备回答本笔记开头提出的问题。
- 编译 C/C++ 程序需要什么?
- 在 Linux 中,您可以使用 GNU GCC/G++ 和
make
; - 在 Windows 中,您可以使用
MinGW
; - 还有其他 C/C++ 编译器。最著名的是 Microsoft Visual C++,但它不在本文讨论范围之内。
- 在 Linux 中,您可以使用 GNU GCC/G++ 和
- 什么是
makefiles
?makefile
是一组由一些 预定义规则 组织的 C/C++ 编译命令;- 大多数常见的
makefiles
将具有all
和clean
规则,用于编译 C/C++ 项目和清除所有构建结果; - 在大多数常见用例中,Eclipse 使用
all
构建项目,使用clean
清除构建结果。
- C/C++ 需要 IDE 吗?
- 答案是“不”和“是”;
- 许多 C/C++ 专家选择不使用 IDE,因为他们擅长创建自己的
makefiles
,并且熟悉构建/调试 C/C++ 程序的所有命令; - 对于经验较少的 C/C++ 程序员来说,IDE 会有很大的帮助。它提供了 C/C++ 项目的轻松概览。它提供了智能感知、实时语法检查。它提供了集成的调试环境。对于经验较少的 C/C++ 程序员来说,它可以为您生成
makefiles
; - 即使对于经验丰富的 C/C++ 程序员,如果你拿到别人写的一大块代码,最好把它加载到 IDE 中进行学习和阅读。这比阅读文档容易得多。在大多数情况下,文档写得并不好;
- 从我的经验来看,我会说“是”。我们需要一个 IDE。
- 我可以使用哪个 Eclipse 包进行 C/C++ 开发?
- 如果您只将其用于 C/C++ 开发,您可以下载 适用于 C/C++ 开发人员的 Eclipse IDE;
- 您也可以使用 Eclipse Marketplace 在其他 Eclipse 包上安装 CDT;
- 本笔记中的所有示例均由 适用于 C/C++ 开发人员的 Eclipse IDE 创建。
- Eclipse 如何构建/编译 C/C++ 程序?
- Eclipse 使用
makefiles
来构建 C/C++ 程序; - 您可以选择提供自己的
makefiles
,或者让 Eclipse 为您生成makefiles
; - 如果您不明确更改它,Eclipse 将使用
make all
命令构建项目,并使用make clean
清除构建结果; - 如果您选择让 Eclipse 为您生成
makefiles
。只有当您使用 **外部构建器** 时,Eclipse 才会明确生成makefiles
。
- Eclipse 使用
- Eclipse 中的构建配置是什么?
- 构建配置是您控制 Eclipse 如何构建项目的一组规则;
- 一个项目可以有多个构建配置,并且必须有一个且仅有一个活动配置;
- 您可以将其中任何一个设置为活动构建配置;
- 当您构建或清理项目时,生效的是活动构建配置;
- 在 Eclipse 中,构建配置的名称对应于文件系统中的目录/文件夹。Eclipse 会将生成的
makefiles
和构建结果放入此目录/文件夹中。
- Eclipse 中的 C/C++ 项目类型有哪些?
- 从更广阔的视角来看,Eclipse 只提供两种项目类型。**Makefile 项目** 类型意味着您将自行提供
makefiles
,其他类型则意味着您将让 Eclipse 为您生成makefiles
; - 如果您选择让 Eclipse 为您生成
makefiles
,您可以选择Executable
、"Static Library
" 或 "Shared Library
" 项目类型。
- 从更广阔的视角来看,Eclipse 只提供两种项目类型。**Makefile 项目** 类型意味着您将自行提供
- Eclipse 中 C/C++ 项目的“构建产物”是什么?
- 如果您选择让 Eclipse 为您生成
makefiles
,则构建产物对应于项目类型; - 构建产物最主要地影响
makefiles
的生成方式,因为Executable
、"Static Library
" 或 "Shared Library
" 需要不同的命令来构建。
- 如果您选择让 Eclipse 为您生成
- 什么是运行/调试启动配置?
- 您可以在 Eclipse 中运行/调试
Executable
项目; - 运行/调试启动配置告诉 Eclipse 哪个可执行文件要运行或调试;
- 运行/调试启动配置与构建配置相关联。如果您更改了代码,Eclipse 将在使用关联的构建配置重建项目,然后才启动可执行文件;
- 您可以有多个运行/调试启动配置,您可以选择其中一个在 Eclipse 中运行/调试您的可执行文件。
- 您可以在 Eclipse 中运行/调试
- 当我们使用不受 Eclipse 控制的第三方库时,Eclipse 如何提供智能感知?
- Eclipse 需要知道第三方库的头文件才能提供智能感知;
- 您可以右键单击项目名称 -> **属性** -> **C/C++ General** -> **路径和符号**,将头文件位置添加到 **包含** 选项卡。
- 即使我们在同一个 Eclipse 工作区中引用另一个项目,Eclipse 也可能不完全了解头文件,如果需要,您可能需要手动添加它们。
- 如果使用第三方库,我们需要告诉 Eclipse 什么才能让它为我们生成正确的
makefiles
?- 我们需要告诉 Eclipse 头文件位置;
- 我们需要告诉 Eclipse 在哪里找到第三方库;
- 我们需要告诉 Eclipse 哪个文件是第三方库;
- 我们可以通过右键单击项目名称 -> **属性** -> **C/C++ General** -> **路径和符号** 来实现。
- 如何在同一个 Eclipse 工作区中的一个项目引用另一个项目?
- 在同一个 Eclipse 工作区中,从一个项目引用另一个项目的最佳方式是右键单击项目名称 -> **属性** -> **C/C++ General** -> **路径和符号** 并选中 **引用** 选项卡;
- 引用是根据构建配置而非整个项目进行配置的。它引用另一个项目的另一个构建配置;
- 添加引用可能不会告知所有有关被引用项目的信息,您可能需要手动更改一些设置。
- 如果我在 Linux 中创建一个 C/C++ 项目,我可以顺利地将其转移到 Windows 吗?
- 在本笔记的示例中,过程非常顺利;
- 但不能保证,因为环境可能不完全兼容。
- 从示例中,您认为使用 Eclipse 进行 C/C++ 开发最重要的概念是什么?
- 构建配置最重要,因为它们说明了项目将如何构建。它也很重要,因为几乎所有其他配置都与构建配置相关联;
- 运行/调试启动配置很重要,因为您通常会在 Eclipse 中调试代码。了解启动配置与构建配置相关联非常重要,这样您就可以确定正在运行的确切可执行文件,因为您可能有多个可执行文件(因为您可能有多个构建配置);
- **路径和符号** 配置,特别是 **包含** 配置很重要。您需要告诉 Eclipse 在哪里找到所有头文件,以便 Eclipse 可以提供智能感知来帮助您编写代码;
- 如果您希望 Eclipse 为您生成
makefiles
,您可能需要检查 **C/C++ General** -> **Paths and Symbols** 中的所有选项卡,以确保 Eclipse 生成正确的makefiles
; - 如果您乐于为一个足够大的项目自己创建
makefiles
,那么您已经是 C/C++ 专家,并且可能已经有了自己的判断。
- 您对 Eclipse 作为 C/C++ 开发 IDE 的感受如何?
- 总的来说,我认为 Eclipse 作为 C/C++ IDE 表现出色;
- Eclipse 生成的
makefiles
相当不错; - 配置和项目/第三方引用是可管理的;
- 对于非 C/C++ 专家来说,使用 Eclipse 进行 C/C++ 开发的学习曲线适中且可管理。
- 在极少数情况下,您可能会遇到一些小故障。如果您确定没有犯任何错误,通常可以通过清理项目并重新构建来解决问题。有时,手动刷新项目也可能有所帮助。
- 您还想让我们知道什么?
- 我发现这个 stack overflow 链接 非常有帮助,而不是复制到这篇笔记中;
- 希望您阅读本笔记后能开始使用 Eclipse 作为您的 C/C++ IDE。至少您会知道在哪里找到您遇到的问题的解决方案。
关注点
- 这是一篇关于在 Eclipse 和 CDT 帮助下编写 C/C++ 程序的笔记;
- 这篇笔记最终变得不必要地冗长和复杂/繁琐。如果您没有耐心,您不需要阅读它。您可以只查看问题和答案;
- 所有附加项目均在 Linux 中创建。如果您想在 Windows 中尝试它们,可以参考“示例 3 - Linux 和 Windows 之间的项目兼容性”部分;
- 希望您喜欢我的帖子,也希望这篇笔记能以某种方式帮助到您。
历史
- 2016年2月12日:首次修订