C语言如何实现多个文件生成一个目标文件 例如,main.c config.h key.c key.h cmdline.c cmdlin.h 等这些文

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言如何实现多个文件生成一个目标文件 例如,main.c config.h key.c key.h cmdline.c cmdlin.h 等这些文相关的知识,希望对你有一定的参考价值。

例如,main.c config.h key.c key.h cmdline.c cmdlin.h 等这些文件,我要生成一个目标文件(target.bin).BIN文件,该如何用C\C++实现;
能不能给出详细的代码例子,谢谢?

参考技术A 用编译器生成,那些都是源文件,你编译了之后就成目标文件了,也就是bin文件 参考技术B h文件全部用include加到主程序里
c会自己处理追问

通过编译生成BIN文件,写一个.EXE文件用来对这些文件进行整合成(生成)一个(.bin)文件

追答

c自己就整合了,还要你写?
你写的程序能有c整合得好?

追问

我程序是在DOS命令 通过C51编译的,不是开发工具编译的,所以要自己写。

本回答被提问者采纳
参考技术C 加到include里就行

c语言一个结构体如何在多个源文件里面调用?

c语言同一个结构体在多个源文件里面调用如何实现?
我尝试写在一个头文件里面,然后多个源文件同时调用这个同文件,结果编译报错LNK2005 重定义了

如何解决?

引用结构体有引用类型,和引用全局变量两种方式。
1、引用类型。
需要将结构体定义与头文件中(.h文件),然后在需要引用类型的源文件(.c)中,均引用该头文件,即可使用该类型。
2、引用全局变量。
要引用全局变量,需要先引用类型,之后在一个源文件中定义全局变量,在其它源文件中声明该全局变量,即可使用。
比如结构体为struct test, 定义全局变量为
struct test glabol_test;
在其它文件中,只需要
extern struct test globol_test;
即可在对应文件声明所在行之下进行调用。
参考技术A 头文件里用extern struct xxx; 其中一个.c文件里 struct xxx;
其他.c要用的话吧这个头文件包含进去。本回答被提问者采纳
参考技术B foo.h文件里面写
#ifndef _FOO_H_
#define _FOO_H_
struct foo

int date;
;
#endif
然后每一个需要这个结构体的文件都加头文件 foo.h追问

这个只能解决一个源文件多次调用头文件 不能解决多个源文件调用同一个头文件的问题

追答

我大大小小写了几年代码
不是第一次多个源文件调用同一个头文件的同一个结构体

你错 不是方法错

追问

可能这个结构体比较复杂吧,里边有函数实现

总之就是第二次调用要写extern,不然编译器会报错的

已经解决了...大一苦逼工科狗已跪

以上是关于C语言如何实现多个文件生成一个目标文件 例如,main.c config.h key.c key.h cmdline.c cmdlin.h 等这些文的主要内容,如果未能解决你的问题,请参考以下文章

Linux中,运行一个C语言程序如何运行

如何在Unix 下运行c语言?

C语言中编译 生成 调试 测试 运行各是啥意思有啥区别

如何强制生成文件重建目标?

C语言源程序文件经过编译连接之后生成一个后缀为_____的文件。

UNIX下 用CC如何编译多个c语言源程序文件