我是Code :: Blocks的新手.对于我的学习,我正在用C语言编写几个小程序(只是为了尝试一下).我试图将它们全部放在一个项目中,因为它们属于同一个主题,但这不起作用,因为每个项目都有一个主要功能.
有什么想法我怎么能把这些文件放在一起,但不依赖于彼此?
假设您的源文件被调用
其中prog1.c和prog2.c各包含一个main()函数,mylib.c(带有相应的头文件mylib.h)包含一些应该链接到每个程序的库函数.在Code :: Blocks项目中,您需要立即创建多个目标.从菜单中选择"文件/新建/构建目标..."并将其命名为"prog1"和"prog2".现在将所有源文件添加到项目中(如果您还没有这样做).
现在右键单击prog1.c并从上下文菜单中选择"Properties ...".在对话框中选择"构建"选项卡,并确保在"属于目标"下仅选中"prog1".使用prog2.c和目标"prog2"执行相同操作.对于"mylib.c",确保选中"prog1"和"prog2".
现在,您可以轻松地在UI中选择构建和运行的构建目标.请注意,如果添加另一个目标,例如"prog3",则必须再次转到prog1.c和prog2.c的构建属性并取消选中"prog3".
假设您的项目包含 3 个 c 文件,每个 c 文件都是一个单独的程序,并且包含自己的main函数:
这样你就可以编写一个Makefile(它在你电脑中的名称应该是“Makfile”)。它将单独构建你想要的程序
这是你的 makefile 的样子:
all: program1 program2 program3
%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $^
program1: program1.o
$(CC) $(LDFLAGS) -o $@ $^
program2: program2.o
$(CC) $(LDFLAGS) -o $@ $^
program3: program3.o
$(CC) $(LDFLAGS) -o $@ $^
clean:
rm -f *.o program1 program2 program3
Run Code Online (Sandbox Code Playgroud)
使用上面的 Makefile,您可以单独构建每个程序
例子
$ make program1
Run Code Online (Sandbox Code Playgroud)
将仅构建程序1
或者你可以用以下命令构建所有程序
$make all
Run Code Online (Sandbox Code Playgroud)