从C程序构建新的二进制文件

沉默的虚空

我正在使用C程序,它是一个自定义外壳,要求用户设置不同的选项(IP,端口,...),然后允许用户根据这些信息构建二进制文件。我想知道从现有程序中构建新二进制文件的最佳方法是什么?

编辑:我的问题可能还不清楚。新的编译二进制文件是一个简单的TCP客户端,它将连接到指定的IP和端口。我不希望这个新的二进制文件依赖于配置文件。我如何从现有的C程序构建它?我应该将IP和端口写入.c文件,然后使用进行编译system("/bin/gcc ...")吗?

雷克

我认为您正在描述代码生成并以编程方式编译新的可执行文件。有许多方法可以完成您描述的操作。这是一组非常简单(非常粗略的草稿)的代码生成和编译步骤:

1)使用printf,fgets从现有程序中调用以提示用户输入一组特定的输入值
2)必要时转换命令行数字输入值。(例如,使用atoi()或strtod())
3)打开一个文件进行写入,例如FILE * fp = fopen(filespec,“ w”);)
4)使用fputs()将一系列行发送到该文件由C源文件组成,包括来自用户输入的步骤1&2的值。
例如。fputs("#include _some file_", fp);(以及其他所需的头文件),
例如,fputs("int main(int argc, char *argv[]) {", fp);
fputs(...)(其余所有行构成完整的用户定义代码。)
fputs("return 0; }", fp);
5)关闭文件:fclose(fp);
6)构造一个gcc命令行编译字符串,以在命令行上使用您刚创建的文件。
7)使用popen()(如果可用)或系统(),或者如果使用的是Windows,像这样将命令发送到操作系统,在命令行上执行海湾合作委员会(或其他编译器)来创建可执行文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章