大家好我有以下问题。我想将变量声明为.h文件,并将同一变量定义/初始化为.c文件。然后在我的主代码中使用预定义变量。
这是我的主要内容:
#include <stdio.h>
#include "file.h"
int main(){
printf("%u \n\n",i);
system("pause");
return 0;
}
这是我的头文件:
//file.h
extern unsigned int i;
这是我的.c文件:
//file.c
unsigned int i = 10;
我希望我的主代码打印10的值,它是.c文件中定义的值。如何将.c和.h文件作为多个编译单元链接在一起?
我在Windows上使用Dev-C ++ ver 4.9.9.2。
请原谅我糟糕的英语
答案 0 :(得分:1)
如果您使用的是IDE(Integrated Development Environment),那么项目中的所有文件都应自动链接在一起。
如果您使用命令行提示进行手动构建,最简单的方法是在命令行上列出所有源文件,例如
$ cc -Wall -g main.c file.c -o myprogram
上述命令(cc
)编译main.c
和file.c
,然后将它们链接到生成的可执行文件myprogram
中。
使用的标志是:
-Wall
添加更多警告,在开发时总是很好-g
添加可供调试器使用的调试信息-o
如何命名结果输出答案 1 :(得分:0)
编译:
gcc main.c file.c -o res
现在两个.c
文件都被编译并链接在一起形成可执行文件res
并运行
./res
答案 2 :(得分:0)
要添加其他答案,如果您创建Makefile
也可能会很好,您的make文件可能包含以下内容
CC = gcc
CFLAGS = -Wall -Wextra -Werror
LDFLAGS =
OBJ = main.o file.o
executable: $(OBJ)
$(CC) $(CFLAGS) $(LDFLAGS) $(OBJ) -o YourProgramName
%.o: %.c
$(CC) -c $(CFLAGS) $<
然后,只需在控制台中输入make
,即可创建可执行二进制文件YourProgramName
。
如果您使用的是IDE,那么它可能会打开Makefile
,从而加载您的整个项目。