189 8069 5689

【Geany编辑器】如何同时编译多个C文件-创新互联

文章目录
  • 前言
  • 如何编译单个C文件
    • GCC常用命令
    • Compile配置
    • Build配置
    • Execute配置
  • 如何编译多个C文件
    • 解决方案
  • 总结

创新互联建站是创新、创意、研发型一体的综合型网站建设公司,自成立以来公司不断探索创新,始终坚持为客户提供满意周到的服务,在本地打下了良好的口碑,在过去的10年时间我们累计服务了上千家以及全国政企客户,如成都航空箱等企业单位,完善的项目管理流程,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致夸奖。前言

编辑器我用过很多种,如Visual Studio、VS Code、Pycharm、Dev c++等等,最终还是用Geany这个小巧的编辑器最顺手。它大的优势就是轻量级,而且基本功能也挺全面的,所以一些简单的代码练习我都使用的它。

如何编译单个C文件

Geany中菜单栏有个Build图标,点开后大致长这样
在这里插入图片描述
其中,第一栏 C commands 就是设置编译、汇编、链接等操作的地方。可以看到,底层实现实际是调用了GCC编译器完成的。这里简要介绍一下GCC常用语法。

GCC常用命令
  • 预编译:宏定义展开、头文件展开、条件编译、删除所有注释。 不做语法检查。
    • 命令:gcc -E xxx.c -o xxx.i
    • 生成预编译文件,后缀.i
    • -o指的是输出的意思,后面指定文件名
  • 编译:将预处理文件编译成汇编文件,进行语法检查
    • 命令:gcc -S xxx.i -o xxx.s
    • 生成汇编文件,后缀.s
  • 汇编:将上一步的汇编文件转换为二进制文件。
    • 命令:gcc -c xxx.s -o xxx.o
    • 生成目标文件,后缀.o
  • 链接:将所有目标文件 + 库函数 + 启动文件生成可执行文件。
    • 命令:gcc xxx.o -o xxx.exe
    • 生成可执行文件,后缀.exe
  • 执行:执行xxx.exe文件
    • 命令:xxx
    • 直接输入文件名即可执行

注意:每个命令都代表可以从源文件(xxx.c),直接执行到当前输出格式。所以常用的一般是后两个命令。举个栗子:

gcc -c test.c -o test.o //执行预编译+编译+汇编,直接输出test.o文件  
 gcc test.c -o test.exe  //执行预编译+编译+汇编+链接,直接输出test.exe文件

-o后面指定生成的文件名,后缀可以省略(编译器会自动生成)。

以上命令都可以在控制台(cmd)中运行。如果抛出异常,检查两点:

  • GCC系统环境是否配置。可以直接输入gcc验证。
  • 是否在当前c文件目录下。详见cmd的cd命令。
Compile配置

因此,我们回到Geany配置中,Compile所对应的命令为:gcc -Wall -c "%f"-Wall可以生成所有警告信息。-c代表这是一条汇编命令,将输入文件转换为目标文件.o%f是Geany编辑器中的替代格式,详情参考:Geany Manual,常见的列举如下:

  • %e:不带扩展名或路径的当前文件的名称。
  • %f:不带路径的当前文件的名称。

因此此处"%f"代表当前文件名称(带后缀)。
小结:点击Compile图标,会进行汇编操作,在当前目录下生成目标文件.o

Build配置

相比Compile,Build用的更多一些,命令为:gcc -Wall -o "%e" "%f"。根据上文,我们可以看出这实际就是将当前文件("%f")输入,直接预编译+编译+汇编+链接生成指定的可执行文件("%e"),且文件名保持一致。

Execute配置

命令为:"./%e"./代表当前目录,%e是当前文件名(不带后缀),因此点击执行(Execute)会直接执行Build所生成的.exe文件。

如何编译多个C文件

上述方法只能编译单独的C文件,如果我们自己编写头文件,Geany目前的配置是无法找到头文件所对应的实现文件的。当然,直接在cmd中用GCC命令也是可以同时编译多个文件的,但本文仅讨论在Geany中的实现。

解决方案

新建一个文件夹,存放所有要编译的C文件(你也可以选择建立一个工程,点击Project ->New)。同时将Build所对应的命令更改为gcc -Wall ./*.c -o "%e",这样,只要点击Build,就会编译当前目录下所有C文件,生成对应的可执行文件了。

总结

Geany写一些脚本还是挺方便的,但在工程建立方面确实做的不是很好,至少在其他IDE中可能就会自动编译当前工程的文件。本文仅提供一种解决方案。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章标题:【Geany编辑器】如何同时编译多个C文件-创新互联
文章来源:http://jkwzsj.com/article/eejhs.html

其他资讯