我是Code :: Blocks的新手。对于我的学习,我正在用C语言编写几个小程序(只是为了尝试一下)。 我试图将它们全部放在一个项目中,因为它们属于同一个主题,但这不起作用,因为每个项目都有一个主要功能。
任何想法如何将这些文件以某种方式放在一起,但不依赖于彼此?
答案 0 :(得分:8)
假设您的源文件被调用
其中prog1.c和prog2.c各包含一个main()函数,mylib.c(带有相应的头文件mylib.h)包含一些应链接到每个程序的库函数。在Code :: Blocks项目中,您需要立即创建多个目标。从菜单中选择'文件/新建/构建目标...'并命名他们' prog1'和' prog2'。现在将所有源文件添加到项目中(如果您还没有这样做)。
现在右键单击prog1.c并选择"属性..."从上下文菜单中。在对话框中选择' Build'选项卡并确保在"属于目标"只有" prog1"检查。对prog2.c和目标" prog2"执行相同的操作。对于" mylib.c"确保" prog1"和" prog2"检查。
现在,您可以轻松地在UI中选择要构建和运行的构建目标。请注意,如果您添加另一个目标,请说" prog3",那么您必须再次转到prog1.c和prog2.c的构建属性并取消选中" prog3"。
答案 1 :(得分:2)
C 程序应该只包含一个主要功能..将所有单独的程序划分为功能并将它们放在一个C程序中,或者甚至可以将它放入多个文件并编译它们。
您可以使用switch case
来调用不同的函数..
从所有程序中删除main function
并将其转换为functions
..
在需要的地方打电话给他们..这会对你有帮助..
答案 2 :(得分:1)
在我看来,好像你开始构建一些很好的实用功能。因此,请遵循raghu-srikanth-reddyce提供的建议,并为每个小程序创建单独的函数。但是我想补充一点,最好是创建一个简单的C库来保存它们随时可以链接的所有内容。大多数专业程序员都会保留这些库。
一个简单的makefile将使您能够构建一个可以链接到的最终二进制文件。
祝你的节目好运;)
答案 3 :(得分:1)
假设您的项目包含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
使用上面的Makefile,您可以逐步构建每个程序
例如
$ make program1
只会构建program1
或者您可以使用
构建所有程序$make all
答案 4 :(得分:0)
如果要在一个文件中编译,则不需要项目文件。 只需创建新文件,然后将所有代码写入单个文件中。如果需要,还可以使用功能和程序。
答案 5 :(得分:0)
这已经很晚了,但是因为我曾经在这里遇到同样的问题,并且我相信大多数学生曾经/曾经/都会有同样的问题,所以让我详细说明一下你在哪里玩的。
在教育课程和现实世界中,一个项目(通常)是您要处理的一些问题,找到解决方案,然后就此做一个报告(+文档)。
在Programming IDE中,项目本身就是问题的解决方案。因此,尽管您可能在任何Python IDE的一个项目中遇到多个单独的问题,但是任何标准C / C ++ IDE项目都必须只有一个'main()'来统治所有问题(除非您知道如何创建makefile)。
AP试图做的是将几个不同问题的解决方案放在一个解决方案的空间内-在Code :: Blocks中不可能这样做。即使所有问题都可能共享同一主题(例如图论),它们本身也是单个问题(Dijkstra与Floyd)。