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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写了一个程序可以编译c语言,怎么自动再链接然后执行生成的可执行文件?相关的知识,希望对你有一定的参考价值。

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

编译的大致过程如下:

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

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

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

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

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

我的vc 6.0 可以编译,可用链接,点击执行,显示ready,但弹不出黑框

救命啊,快哭了,程序没问题,弹不出黑框啊
都充装了四遍了,无语

重新下一个VC安装,可能是VC的问题
VC的卸载如果按照程序给的卸载程序进行,会有少量残余,无法重新安装
即使用360、优化大师等软件删除也不可以
必须手动删除后,去注册表里进行修改
楼主可以从网上搜一下“如何彻底删除VC”
第一步 删除注册表信息

点击“开始”按钮,单击“运行”,敲入RegEdit然后是你要删除的注册表中的某一项。

或者你敲入Regedit 打开注册表编辑器

在注册表中按照目录顺序找到具体的某一项,然后按delete键删除。

上述是讲了两种删除注册表中某一项的方法。下面列出你要删除的:

HKEY_LOCAL_MACHINE\Software\Microsoft\Devstudio

HKEY_LOCAL_MACHINE\Software\Microsoft\HTML Help Collections

HKEY_LOCAL_MACHINE\Software\Microsoft\Visual Basic

HKEY_LOCAL_MACHINE\Software\Microsoft\Visual Component Manager

HKEY_LOCAL_MACHINE\Software\Microsoft\Visual Modeler

HKEY_LOCAL_MACHINE\Software\Microsoft\Visual Studio

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Visual Studio 6.0

- OR-

MSDN Library

- OR-

Visual Studio 6.0 components

HKEY_CURRENT_USER\Software\Microsoft\Devstudio

HKEY_CURRENT_USER\Software\Microsoft\Visual Basic

HKEY_CURRENT_USER\Software\Microsoft\Visual Component Manager

HKEY_CURRENT_USER\Software\Microsoft\Visual Modeler

HKEY_CURRENT_USER\Software\Microsoft\Visual Studio

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\StartMenu\&Programs\Microsoft Visual Studio 6.0
-or_
MSDN Library
-or-
other Visual Studio 6.0 components

HKEY_USERS\S-1-5-21-2127521184-1604012920-1887927527-72713\Software\Microsoft\Visual Studio

HKEY_USERS\S-1-5-21-2127521184-1604012920-1887927527-72713

\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\StartMenu\&Programs\Microsoft Visual Studio 6.0

-or_
MSDN Library
-or-
other Visual Studio 6.0 components

第二步删除目录

C:\Program Files\Microsoft Visual Studio

C:\Program Files\Common Files\Designer

C:\Program Files\Common Files\Microsoft Shared\MSDesigners98

C:\Program Files\Common Files\Microsoft Shared\MSDN

C:\Program Files\Common Files\Microsoft Shared\Triedit

C:\Program Files\Common Files\Microsoft Shared\VS98

C:\Program Files\Common Files\Microsoft Shared\Wizards98

对于windows2000的用户

找到C:\Documents and Settings\ your login \Application Data\Microsoft该目录下删除Visual Studio文件
第三步删除动态链接库dll文件

点击“开始”--à 搜索文件和文件夹

搜索下面的文件,并将其删除

Hh.exe,Hh.dat,Hhcolreg.dat,Hhctrl.ocx,Itss.dll,Itircl.dll

第四步检查Comcat.dll文件

在Windows\System或WinNT\System32目录下找到Comcat.dll文件,如果该文件大小不是22K的话,则进行下面的操作:

点击“开始”按钮,单击“运行”,敲入regsvr32 /u comcat.dll

在Windows\System或WinNT\System32目录下找到Comcat.dll文件,将其删除

从visual studio安装盘中,找到\Common\Ide\Ide98\Redist \Comcat.dll文件将其复制到Windows\System或WinNT\System32目录下

“开始”按钮,单击“运行”,敲入regsvr32 comcat.dll

经过上述四步的操作,visual studio被我们从系统中彻底删除了,这时只要重新进行安装即可。

建议

注册表是Window和windows环境下的绝大部分应用软件都会写注册表的。所以删除软件,不能简单将文件夹删除,还应删除相应的注册表信息。
参考技术A 原因是快捷方式指向的目标错误。
默认的快捷方式指向的是C:\TURBOC2\TC.EXE,可能是下载后放在了D盘,所以不能运行。
解决方法是直接运行TC.EXE,不要运行那个快捷方式,或者把整个文件夹拷贝到C盘根目录。文件夹里有个使用说明文件,自己看看。

以上是关于写了一个程序可以编译c语言,怎么自动再链接然后执行生成的可执行文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Unix 下运行c语言?

Visual Studio 2019怎么编译C语言源程序?

Linux的终端怎么运行C语言

c语言如何把c程序编译成可执行的exe文件

我的vc 6.0 可以编译,可用链接,点击执行,显示ready,但弹不出黑框

VS2012怎么写C语言编译出错啊