我刚开始使用Code::Blocks。为了学习,我正在使用C语言编写几个小程序(只是为了试一下)。我尝试将它们全部放在一个项目中,因为它们属于同一个主题,但是这样做不起作用,因为它们每个都有一个main函数。
有什么办法可以将这些文件合并到一起,但彼此之间不依赖?
我刚开始使用Code::Blocks。为了学习,我正在使用C语言编写几个小程序(只是为了试一下)。我尝试将它们全部放在一个项目中,因为它们属于同一个主题,但是这样做不起作用,因为它们每个都有一个main函数。
有什么办法可以将这些文件合并到一起,但彼此之间不依赖?
一个C程序应该只包含一个主函数。将所有单独的程序划分为函数,并将它们放入一个C程序中,或者甚至可以将它们放入多个文件中并编译它们。
您可以使用switch case
来调用不同的函数。
从所有程序中删除main函数
并将其转换为函数
。
在需要的地方调用它们,这将有助于您。
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
这与程序1有关,仅构建程序1。
或者您可以使用此命令构建所有程序:
$make all
$make program1
?命令行吗?通常我会使用 F9 进行构建和运行。 - Laura看起来你正在开始构建一些不错的实用函数。所以按照raghu-srikanth-reddyce提供的建议,为每个小程序创建单独的函数。但是我想补充说,最好创建一个简单的C库来保存它们,这样你可以随时链接到它们。大多数专业程序员都保留这样的库。
一个简单的makefile将使你能够构建一个最终的二进制文件,你可以链接到它。
祝你编程顺利 ;)
虽然已经有点晚了,但是既然我曾经也有同样的问题,而且我相信大多数学生都有/曾经有/将来会有这个问题,让我详细解释一下你被玩弄的地方。
在教育课程和现实世界中,一个项目(通常)是你要解决的某个问题,然后对其进行报告(+文档)。
在编程IDE中,项目本身就是问题的解决方案。因此,尽管您可能在任何Python IDE中的一个项目中有多个单独的问题,在任何标准的C/C++ IDE项目中,必须只有一个“main()”来统治它们所有人(除非您知道如何创建makefiles)。
AP试图做的是将几个不同的问题的解决方案适合一个解决方案的空间中-这在Code :: Blocks中是不可能的事情。即使所有问题都可以共享相同的主题(比如,图论),它们本身也是单独的问题(Dijkstra vs Floyd)。