写了一个程序可以编译c语言,怎么自动再链接然后执行生成的可执行文件?

author author     2023-05-08     673

关键词:

我编写了一个程序,可以对该目录下的某个特定名称的c程序编译生成汇编程序,经验证可行。现在想问的是如何改进程序,不仅可以编译,还可以进行链接等操作,再执行生成的二进制文件?是否需要用到cmd脚本,这个脚本可以嵌入程序中吗(编译器我用c写的)

编译的大致过程如下:

你完成的其实是前面一部分,的第一阶段,生成了中间代码。

目标代码,即目标文件包含着机器代码(可直接被计算机中央处理器执行)以及代码在运行时使用的数据,如重定位信息,如用于链接或调试的程序符号(变量和函数的名字),此外还包括其他调试信息。

后面是由链接程序将编译后形成的一组目标模块以及它们所需要的库函数链接在一起,形成一个完整的载入模块。

目前的编译工具通常编译器和链接器都是分开,例如GNU的编译器是gcc,链接器是ld

参考技术A C代码调用GCC,类似这样的:
system("gcc test.c -o test");

c语言篇——程序的编译(代码片段)

...来补一下C语言篇的程序的编译的一篇文章,也算是有一个结尾了。目录程序的翻译环境和执行环境编译和链接翻译环境编译的几个阶段预处理编译汇编链接运行环境程序的翻译环境和执行环境在ANSIC的任何一种实现中,... 查看详情

linux下c语言gcc编译的时候如果不知道.c文件怎么链接的?

...骤:  1.源程序的编译    在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器.下面  我们以一个实例来说明如何使用gcc编译器.  假设我们有下面一个非常简单的源程序(hello.c):  intmain(intargc,char**argv)... 查看详情

linux的终端怎么运行c语言

我编好了一个C程序,然后输入到Linux的终端上,但是我不知道怎么运行请哪位高手指导指导。详细点。。。。打开终端然后VI环境下编译运行一.常用编译命令选项假设源程序文件名为test.c。1.无选项编译链接用法:#gcctest.c作用:... 查看详情

vc++中运行c语言一个工程总可以运行多个代码吗?

...个程序吗?不是说一个工程里面可以有多个源代码么?我写了一个程序,运行玩了,要再写一个程序需要再重新建一个工程吗?不需要新建一个工程。你应该把第一个c语言程序从工程中删除掉。选中第一个c程序,del键,这只是... 查看详情

怎么写api程序?

...干什么的,举个例子,我想从用户系统中拿用户信息,我写了个api,语言都可以,你既可以把api和用户系统写在一起,语言用用户系统所使用的语言,又可以把api单纯的当做一个项目,语言更是随你喜欢的用了。语言确定了,当... 查看详情

程序的静态链接(代码片段)

...小程序,那时候习惯于将代码的实现和一些声明同时放在一个文件中,编译过程也很简单。随着编程水平的提高,自然要尝试写一些更复杂的程序,代码量逐渐增大,这时候就有必要将不同的实现部分放在不同的文件中,第一个... 查看详情

perl程序如何编译成二进制文件并使用

...了给程序加密这个完全是转自网络资源,自己懒,不愿意写了,给你个链接。看看能不能帮你吧http://wenku.baidu.com/view/55091042be1e650e52ea9908.htmla.out就是一个可执行文件。在Linux的执行文件,你可以理解为windows下的exe文件。你可以试... 查看详情

c程序的编译和链接

 本文主要讲述了一个C程序从源代码到目标文件所经过的步骤,介绍了编译系统,预处理、编译、汇编和链接的相关知识。一、编译系统   一个C程序的生命周期从高级C语言程序开始。想要在系统上执行.c程序,每条C语... 查看详情

程序编译流程

...解释成机器码并执行,相当于编译和执行二合一 编译一个C程序分为四个阶段:1、预处理阶段2、生成汇编代码阶段3、汇编阶段4、链接阶段& 查看详情

visualstudio2019怎么编译c语言源程序?

...,完成上述步骤后,打开保存在桌面上的文件夹,其中有一个Bebug文件夹,如下图所示,然后进入下一步。   6、最后,完成上述步骤后,打开Bebug文件夹,有一个扩展名为.exe的文件,编译完成,如下图所示。这样,问题... 查看详情

怎么运行cpp文件

我用记事本写了c语言代码,并保存了以.cpp格式的文件,请问怎么编译生成exe文件,或者说怎么让它运行起来拜托具体说明一下(不要说直接复制到vc++里).cpp是c++(即cplusplus)文件类型,比c语言较高级的编程语言。可以用MicrosoftVisu... 查看详情

linux中,运行一个c语言程序如何运行

...意思,linux下的c编程一般是通过gcc实现的。例如,创建了一个hello.c文本,在文本中写入#includeintmain(void)printf(“helloworld!!”);return0;然后在终端输入$gcc–ohellohello.c$/tmp/hello注:hello.c文件放在/tmp目录下,通过gcc-ohellohello.c命令生成... 查看详情

visual studio2010编译c语言,怎么设置

...的左边选择:VisualC++,然后再右边选择:Win32控制台应用程序,在下方输入名称:HelloWorld,选择位置等,然后点击下一步:然后点击下一步,下一步:勾选:空项目,此时如果你是要从标准C语言编译的话勾选此选项,不勾选的... 查看详情

程序编译链接后形成的可执行文件是啥文件

...语言转变成二进制可执行代码时,是以工程为单位的。而一个工程中往往会包含多个C文件。因此,需要将每个C文件都编译成二进制代码。此时,每个C文件所对应的二进制代码是独立的。由于工程是一个系统,所以需要将所有的... 查看详情

用c语言构建一个可执行程序的流程

1、流程图从用C语言写源代码,然后经过编译器、连接器到最终可执行程序的流程图大致如下图所示。2、编译流程首先,我们先用C语言把源代码写好,然后交给C语言编译器。C语言编译器内部分为前端和后端。2.1编译器前端前端... 查看详情

makefile入门(代码片段)

...ink)。编译和链接程序的安排,叫做构建(build)。Make是一个根据指定的Shell命令进行构建的工具,是最常用的构建工具,诞生于1977年,主要用于C语言的项目。它的规则很简单,你规定要构建哪个文件、它依赖哪些源文件,当... 查看详情

visualstudio2010怎么新建c语言文件

...面的项目命名可以随意,完成之后点“确定”接着会出现一个向导页面,点“下一步”在新弹出的页面中,选定“空项目”,然后点击“完成”于是就出现新建项目的页面了。(小编的页面是自己改动过的,可能和大家的不太一... 查看详情

把高级语言编写的源程序转换为可执行程序的过程叫啥?

...提供的资源。所以,通常通过编译、链接后形成的只形成一个可执行的文件。 查看详情