我目前正在学习用C编写代码,我使用Cygwin64来编译代码,到目前为止,我使用Notepad++作为我的文本编辑器,我希望能够使用nppexec插件来编译我的代码,而不是关闭notepad++,编译然后再打开它。唯一的问题是大多数C的nppexec脚本使用的是mingw而不是cygwin,有没有使用cygwin64的C的nppexec脚本呢?
发布于 2020-06-18 00:30:39
就像这样:Final Setup of gcc in Notepad++ [using nppexec]?
Notepad++是一个很棒的程序,但它几乎不是一个集成开发环境。它不能理解你的代码,所以它不能完成智能代码,也不允许你做任何调试。
例如,Code::Blocks是一个很好的免费集成开发环境。
另外,如果你想学习C语言,我不明白你为什么要用Cygwin。如果你真的需要将Linux/Unix的东西移植到Windows上,而这些东西不是用其他工具链构建的,那么只使用Cygwin。
你应该改用MinGW-w64。
发布于 2020-06-18 00:38:02
有没有用cygwin编译C代码的脚本?
帮你自己一个忙,学会使用command line interface。
阅读这本书。
避免在C源文件名中使用奇怪的字符(特别是空格)。所以使用foo-bar.c或foo_bar.c,而不是foo bar.c (在第二个o后加一个空格)。
对于您的source code editor,可以考虑使用GNU emacs、vim或Visual Studio Code (或者您选择的其他IDE )。但请记住,大多数C compiler程序(包括tinycc、nwcc、GCC -which cygwin提供的-、Clang,甚至Visual Studio本质上都是它的cl命令)正在将C translation unit (实际上是您的foo.c文件)转换为object file (例如,Windows上的foo.obj,Linux或MacOSX上的foo.o ),并且本身没有任何用于此的图形用户界面。稍后需要一些linker。
通过ninja或GNU make等build automation工具进行编译。
在许多情况下,生成一些C代码(即所谓的meta-programming方法)是很有趣的。看看像SWIG、ANTLR、GNU bison、rpcgen这样的工具,或者那些支持ASN-1列出的here的工具。对于图形用户界面,可以考虑使用GTK和相关的code generator工具,例如Ggen。有关JSONRPC服务,请参阅jsvggen。使用命令行界面方法,可以很容易地利用这些工具。为了获得灵感,还可以查看许多bootstrapped source to source编译器emitting C code的开放源代码,例如Bigloo、Chicken/Scheme或S48。
学习use a debugger,例如GDB或LLDB。调试信息(例如DWARF)在编译时需要特殊的标志,因此对于GCC,可以使用gcc -Wall -Wextra -g来获取警告和调试信息。Cygwin正在包装GCC编译器。
对于Arduino或RaspBerryPI设备的嵌入式交叉编译,C cross-compiler也是一个命令行工具。
当然,请阅读这里提到的每个工具的文档。
Unix philosophy是受Unix启发的,所以要注意Cygwin。
NppExec是Notepad++的一个插件,它的文档在某个地方。
要获得灵感,请研究github和gitlab上现有开源软件的源代码。
PS。考虑在您的PC笔记本电脑上安装一个新手友好的Linux distribution,比如Debian或Ubuntu (如果您更喜欢原始的:一个好的GNU/Linux发行版而不是它的模仿版: Cygwin)。请确保在尝试之前备份您的重要数据。您需要100 to的磁盘空间才能轻松使用,而且您可以使用双引导设置: Linux用于软件开发,Windows用于游戏。
每一个上面提到的软件(除了一些MicroSoft编译器)都是open source的,并且存在于Debian或Ubuntu上。稍后,您可能会对Linux From Scratch感兴趣。另请阅读this draft报告(2020年6月的工作进展情况)。
发布于 2020-06-19 04:35:08
Cygwin包含了mingw交叉编译器。在cygwin安装程序中查找mingw64-i686-gcc-g++和mingw64-x86_64-gcc-g++包。当您安装了mingw64系统时,这些编译器包几乎与您可以使用pacman安装的编译器包相同。
在生成文件中,将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包可供安装。
https://stackoverflow.com/questions/62433657
复制相似问题