【问题标题】:Are there any scripts for compiling C code with cygwin for nppexec?有没有用 cygwin 为 nppexec 编译 C 代码的脚本?
【发布时间】:2020-06-17 16:20:03
【问题描述】:

我目前正在学习用 C 编写代码,我使用 Cygwin64 编译代码,到目前为止,我使用 Notepad++ 作为我的文本编辑器,我希望能够使用插件 nppexec 而不是编译我的代码必须关闭记事本++,编译然后再次打开它。唯一的问题是大多数用于 C 的 nppexec 脚本使用 mingw 而不是 cygwin,是否有任何用于 C 的 nppexec 脚本使用 cygwin64?

【问题讨论】:

  • 安装eclipse,别再浪费时间了。
  • 帮自己一个忙,使用成熟的 IDE,最好是原生支持 C++。 2020 年还有一些超越优秀的免费选项,例如Visual Studio 社区等等。
  • Notepad++ 非常适合入门 IDE。当你超越它时,geany 就是下一步。完整的 IDE 为您做了很多工作,但在迁移到完整的 IDE 之前了解编辑、编译和链接的基础知识要好得多。学习使用 IDE 并非易事,每一个都不一样,如果你没有一个,如果你不了解基础知识,你就会陷入困境。

标签: c cygwin notepad++


【解决方案1】:

类似这样的:Final Setup of gcc in Notepad++ [using nppexec] ?

Notepad++ 是一个很棒的程序,但它几乎不是一个 IDE。它不理解您的代码,因此无法进行智能代码补全,也不允许您进行任何调试。

例如,Code::Blocks 是一个不错的免费 IDE。

另外,如果你想学习 C,我不明白你为什么要使用 Cygwin。仅当您确实需要将 Linux/Unix 的东西移植到无法使用其他工具链构建的 Windows 时才使用 Cygwin。

你应该改用 MinGW-w64。

【讨论】:

  • 我只使用文本编辑器是因为我正在学习 C 的书(Zed Shaw 的 Learn C the Hard way)推荐它用于学习新语言。
【解决方案2】:

有没有用cygwin为nppexec编译C代码的脚本?

帮自己一个忙,学会使用command line interface

阅读Modern C 的书。

避免 C 源文件名中出现奇怪的字符(尤其是空格)。所以使用foo-bar.cfoo_bar.c 但不要使用foo bar.c(第二个o 后面有一个空格)。

对于您的source code editor,请考虑GNU emacsvimVisual Studio Code(或您选择的其他IDE)。但请记住,大多数 C compiler 程序(包括 tinyccnwccGCC -其中cygwin 提供-、Clang,甚至Visual Studio 本质上都是它的cl 命令)正在转换一个将translation unit(实际上是您的foo.c 文件)转换为object file(例如Windows 上的foo.obj,Linux 或MacOSX 上的foo.o),并且本身没有任何GUI。稍后需要一些linker

通过build automation 工具编译,例如ninjaGNU make

使用version control system,例如git

在许多情况下,生成您的一些 C 代码(所谓的meta-programming 方法)很有趣。查看SWIGANTLRGNU bisonrpcgen 之类的工具,或支持ASN-1 列出的here 的工具。对于 GUI 界面,可以考虑使用GTK 和相关的code generator 工具,例如Ggen。对于JSONRPC 服务,请参阅jsvggen。通过命令行界面方法,可以轻松利用这些工具。还可以查看许多 bootstrapped source to source 编译器 emitting C code 的开源代码,例如 BiglooChicken/SchemeS48

学习use a debugger,例如GDBLLDB。调试信息(例如DWARF)在编译时需要特殊标志,因此对于 GCC,使用gcc -Wall -Wextra -g 来获取警告和调试信息。 Cygwin 正在包装 GCC 编译器。

对于ArduinoRaspBerryPI 设备的嵌入式交叉编译,C cross-compiler 也是一个命令行工具。

花几天时间阅读cygwinof GCC的文档。

当然,请阅读此处提到的每个工具的文档。

Cygwin 受到Unix 的启发,因此请注意Unix philosophy

NppExecNotepad++ 的插件,它的文档在某处。

为了获得灵感,请在githubgitlab 上研究现有开源软件的源代码。

PS。考虑在您的 PC 笔记本电脑上安装一个对新手友好的 Linux distribution,例如 DebianUbuntu(如果您更喜欢原始版本:一个好的 GNU/Linux 发行版而不是它的模仿版:Cygwin)。请务必在尝试之前备份您的重要数据。您需要 100 GB 的磁盘空间才能放心使用,并且可以使用双启动设置:Linux 用于软件开发,Windows 用于游戏。

PPS:上面提到的每个软件(除了一些 MicroSoft 编译器)都是open source 并且存在于 Debian 或 Ubuntu 上。您可以稍后Linux From Scratch 感兴趣。另请阅读this draft 报告以获取信息(2020 年 6 月进行中)。

【讨论】:

  • 是的,CLI 非常棒,让您有机会比通常的 GUI 更快地完成许多事情。
【解决方案3】:

Cygwin 包括 mingw 交叉编译器。在 cygwin 设置中查找 mingw64-i686-gcc-g++ 和 mingw64-x86_64-gcc-g++ 包。这些编译器包几乎与您在安装 mingw64 系统时可以使用 pacman 安装的编译器包相同。

在您的 makefile 中,将 CC=gcc 更改为 CC=/bin/x86_64-w64-mingw32-gcc.exe 以编译 64 位 exe,或将 CC=/bin/x86_64-pc-cygwin-gcc.exe 更改为 32 位exe的。生成的可执行文件不依赖于 cygwin DLL。在最简单的情况下,它们只依赖于 Windows DLL。

有大量 mingw64 软件包可供安装。

【讨论】:

    【解决方案4】:

    帮自己一个忙,在这个阶段不要学习使用命令行。

    如果你使用 Windows 10 安装 VisualStudio

    您确实需要 cygwin,因为 Windows 10 具有本机 Linux 子系统。您可以在那里安装您最喜欢的发行版(我会推荐 Ubuntu,因为说明适用于 Ubuntu)。

    按照说明操作:https://devblogs.microsoft.com/cppblog/targeting-windows-subsystem-for-linux-from-visual-studio/

    享受吧。

    当您稍微学习 C 后,您就可以开始学习 make 或其他构建系统。根本不需要学习 21 世纪的命令行 GDB IMO。它有很多方便的 GUI 和集成环境

    【讨论】:

    • 我不太同意。如果您计划开发更多的操作系统而不仅仅是 Windows,那么了解一些命令行是很好的,因为这是它们的共同点。我昨天(实际上)参加了微软的开源峰会,即使在那里,微软人也提到他们相信命令行会继续存在。这就是他们如此关注 PowerShell 以及将 bash shell 引入 Windows 的原因。 Linux 子系统非常适合开发人员和技术人员,但这不会是分布式 Windows 软件的目标。这就是 MinGW-w64 如此成功的原因。
    • @BrechtSanders OP 学习 C。他与您所写的问题相去甚远。学习 C 语言,用图形调试器改变一些东西 IDE 是 100% 最好的。
    • Modern C明确推荐使用命令行。
    • Windows 上的 Linux 子系统称为WSL
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多