无需 IDE 即可学习 C++

2024-03-13

我最近开始学习 C++,并且对 IDE 和编译器的选择感到完全困惑。我擅长解释性语言,并且喜欢使用任何 IDE 或文本编辑器然后从命令行运行解释器的简单性。无论使用什么 IDE,一切都会按我的预期进行,因为我每次都使用相同的解释器。

现在我已经开始学习 C++,我对不同编译器的选择以及更重要的是它们的差异感到不知所措。如果在学习时使用文本编辑器和从命令行运行的编译器,事情对我来说似乎会更简单(不一定更容易)。我对编译和链接的工作原理有基本的了解,并且了解头文件的作用。

首先,是否有任何书籍或网站教授这种方法的 C++? (无 IDE) 很多书试图通过选择两者并进行比较来指出 IDE 和编译器之间的差异,这让我感到困惑。

其次,我应该如何设置我的工作流程? (忽略文本编辑器的选择,我说的是编译器、链接器等)我很难理解不同编译器有什么差异,所以请在回答时记住这一点。似乎最流行的编译器是 g++ 和 CL。 类似的问题,但我更感兴趣的是为什么有些程序可以与某些编译器配合使用,而不能与其他编译器配合使用:适用于 Windows 的 C++ 编译器,无需 IDE? https://stackoverflow.com/questions/958695/c-compiler-for-windows-without-ide

更多信息:我正在Windows上进行开发,据我了解,似乎有“纯”C++,然后是与Windows有某种关系的C++,这是Visual C++吗?我想编写利用 Windows 功能的程序,但我想知道何时使用 Windows 功能以及何时编写可在任何平台上运行的代码。

Update:所以看来我刚开始时不应该担心编译器。我想了解这些差异的原因是因为我不想为特定编译器编写代码并养成坏习惯。这不是问题吗?


首先,是否有任何书籍或网站教授这种方法的 C++? (无 IDE)

当然是。斯特鲁斯特鲁普的书 https://rads.stackoverflow.com/amzn/click/com/0201700735已经提到过。对于学习 C++,我还推荐另外两本书:如果您喜欢详尽的解释并且不回避 1000 页,请看看李普曼等人 https://rads.stackoverflow.com/amzn/click/com/0201721481。如果您喜欢简短的介绍并且不担心陡峭的学习曲线,请查看科尼格/穆 https://rads.stackoverflow.com/amzn/click/com/020170353X。两本都是很棒的书。 (顺便说一句,寻找好书的好地方一直是书评部分ACCU http://www.accu.org.)

至于您想要使用哪个工具链:如果您希望拥有一个独立的编辑器并从命令行调用编译器,则可以使用 GCC 或 VC 来完成此操作。这种方法的优点是它不太可能诱使您使用专有的东西(例如 C++/CLI)。如果您想尝试 IDE,一旦您建立了新的 C++ 项目,VC Express 就可以了。当然,您可以为新项目调整的选项数量可能非常多。但另一方面,您可以获得诸如集成调试器之类的东西。请注意,还有其他集成解决方案。最成熟和突出的可能是eclipse。

Edit: 不介意花点钱的话可以看看Comeau http://www.comeaucomputing.com。它不是免费的,但也不昂贵,并且通常被认为是最符合标准的 C++ 编译器,并且具有出色的错误消息。 (您可以在网站 http://www.comeaucomputing.com/tryitout.) 但请注意,它会发出 C 代码。这意味着您必须有另一个编译器来创建可执行程序。但 GCC 和 VC Express 都可以,所以没有其他费用。 (注意,使用 VC 你会得到 Dinkumware 的 std lib 实现,这也被认为是一个非常好的实现。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无需 IDE 即可学习 C++ 的相关文章

随机推荐

  • 如何制作Java插件?

    如果我想让我的Java程序能够接受插件 我怎样才能让Java插件使用核心程序的类而不将所有代码包含到插件代码中 插件如何访问程序界面而不将其包含到自己的 jar 文件中 看看Java插件框架 http jpf sourceforge net
  • 有没有办法暂停核心动画并在稍后恢复它?

    我有几个核心动画同时进行 它们都有一个上下文和一个动画 ID 其中上下文是正在动画的对象 UIImageView 对象 我想暂停它们 以便动画暂时停止 然后当某些事情完成时 恢复它以完成它 这些事情仅发生在 UIScrollView 中非常
  • 在 javascript 中启用/禁用 asp 验证控制

    我希望使用 JavaScript 启用 禁用我的验证控件 当我单击单选按钮列表 是 否 时 2 3 行变得可见 单击 是 后 用户必须在该行中提供的文本框中输入内容 为此 我保留了需要字段验证器 我在页面加载时禁用所有这些 然后使用 Val
  • Powershell:捕获无法启动服务时引发的异常

    我似乎无法捕获抛出的异常Start Service 这是我的代码 try start service SomeUnStartableService catch Microsoft PowerShell Commands ServiceCom
  • ASP.net 不使用其他区域设置资源文件

    我有一个Default aspx我获取本地化值的文件 默认 aspx
  • IgnoreMissingMember 设置似乎不适用于 FSharpLu.Json 反序列化器

    这是以下内容 F 中 json net 的反序列化问题 https stackoverflow com questions 62360805 deserialization issue with json net in f 我正在反序列化一
  • 在java中向下舍入0.5

    如何实现一个舍入函数 将除 0 5 或其任何奇数倍之外的所有数字照常舍入到最接近的整数 例如 2 899是要四舍五入到3 0 2 332是要向下舍入到2 0 2 5也将向下舍入为2 0 并不是3 0 您可以使用BigDecimal如下 pu
  • 如何检查数组列表中的数字是否连续

    我想检查数组列表中的数字是否是连续的 数组中的数字从 1 开始 下一个元素应该是 2 3 和 4 这意味着下一个元素比前一个元素大 1 public static void main String args ArrayList
  • react-hook-form 只以多级形式注册最后一步的表单数据

    我使用这个 css tricks 构建了一个多级表单article https css tricks com the magic of react based multi step forms 我正在尝试使用验证表单react hook f
  • 将图像从列表视图加载到下一个活动

    我在用Listview使用 json 解析器显示图像和数据 但是 当我单击其中一个列表项时 图像不会显示在下一个活动中 即详细活动中 我正在使用以下代码来显示图像 任何人都可以引导我走上正确的道路吗 任何帮助将不胜感激 Launching
  • 是否有与 Python pass 语句等效的 JavaScript 语句但不执行任何操作?

    我正在寻找与 Python 等效的 JavaScript pass不运行函数的语句 符号 JavaScript中有这样的东西吗 蟒蛇的pass主要存在是因为在 Python 中 块内的空格很重要 在 Javascript 中 相当于在块中不
  • Tess-2 OCR 不工作

    我试图在 Android 上使用 tess two 从图像中获取文本 但这给了我一个非常糟糕的结果 01 16 12 00 25 339 I Tesseract native 29038 Initialized Tesseract API
  • composer.lock 中的 shasum 是什么? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我想升级包框架 我修改了我的composer lock 但我不明白沙苏姆 dist type zip url http www packag
  • Spring Boot Rest 中的枚举作为请求参数

    我是 Spring Boot 新手 并尝试使用 Enum 作为休息请求的参数 这是我的枚举类 public enum Month JANUARY 1 january FEBRUARY 2 february MARCH 3 march APR
  • 使用 PagedList.mvc 时如何保持/保留在同一页面上

    我正在使用 PagedList Mvc 并且添加了一种在 mvc Web 应用程序中跨各个页面进行导航的好方法 但是 当我单击 编辑 或 详细信息 选项卡并保存更改时 我会返回到第一页 我想保留在进行更改的同一页面上 这是我在控制器中的代码
  • switch 语句条件中同时具有模板和非模板转换运算符的类

    问题最初出现在这个问题 https stackoverflow com questions 25046418 internal compiler error templated conversion operator in switch e
  • 确定 Java 中 TLS 握手的 Diffie-Hellman“参数”长度

    我想与服务器建立 HTTPS 连接 如果我使用 非临时DH密钥交换 我想知道参数是什么 用于该连接 事实上 我并不关心它是否 是否短暂 我正在寻找的是建立连接然后发出警告的能力 如果连接使用 弱 DH 参数 那是我吗 可以在连接时检查吗 或
  • Caliburn Micro Xamarin 的数据绑定操作顺序

    Caliburn Micro Xamarin Android Mono Android 中数据绑定的 操作顺序 OOP 是什么 PS 解释 比较 Caliburn Micro Standard WPF Caliburn Micro Andr
  • libpng 错误:不是 PNG 文件

    我曾多次尝试将 Android Studio 构建工具升级到 1 3 1 以上 但最终总是遇到此 libpng 错误 我通过完全删除 Maven 依赖项解决了其中一个错误 因为 gradle 控制台准确地指出了问题文件所在的位置 但现在我遇
  • 无需 IDE 即可学习 C++

    我最近开始学习 C 并且对 IDE 和编译器的选择感到完全困惑 我擅长解释性语言 并且喜欢使用任何 IDE 或文本编辑器然后从命令行运行解释器的简单性 无论使用什么 IDE 一切都会按我的预期进行 因为我每次都使用相同的解释器 现在我已经开