我目前正在进行课堂作业。分配是在c中创建链接列表。但是因为我们这是一个类赋值,所以我们有一些约束:
我们有一个无法修改的头文件。 我们有一个c文件,它是链表 我们有一个c文件,它只是一个测试链表的主要方法
头文件定义了一个main方法,所以当我尝试构建链表时,它会失败,因为没有main方法。我该怎么做才能解决这个问题?导入测试文件(这会导致另一个错误)?
答案 0 :(得分:3)
我假设您的三个文件名为header.h,main.c和linkedlist.c
gcc main.c linkedlist.c -o executable
这将创建一个名为“executable”的可执行二进制文件
请注意,这也假设您使用gcc作为编译器。
答案 1 :(得分:0)
与大多数语言一样,C支持模块。我认为您的任务需要的是编译模块。与完整程序不同,模块缺少入口点。粗略地说,它们是以图书馆的方式集合的功能。编译模块时,不进行链接。
您可以编译这样的模块:gcc -c linkedlist.c
- >这实际上会产生linkedlist.o,这是一个模块。尝试执行此linkedlist.o(将其模式更改为可执行文件后,因为默认情况下不会这样)。您执行此模块失败的原因部分是因为它的格式不正确。它不是这样的原因是缺乏切入点(我们所知道的“主要”)和联系。你的作业似乎提供了一个测试'main.c',如果你想使用它,你只需要将'main.c'(实际编译成main.o)与linkedlist.o链接起来。要实际执行此操作,只需键入gcc -o name_of_your_program main.c linkedlist.o
即可。实际上,这里要做的是你的编译器首先将main.c编译成一个main.o模块,然后用你给它的名字用2个模块连接-o选项,但编译器非常聪明,他不需要明确他需要采取的步骤。现在,如果您想了解更多关于这些内容的信息,您必须尝试了解编译器如何完成它们的工作。 Google可以为您提供比以往更多的帮助。祝你好运。