gcc 使用库时出现未知引用错误

aamkag61  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(127)

我目前正在创建一个C库来接受输入(类似于scanf),但在将所有必需的文件移动到相关位置后,当我键入此命令(gcc main.c -o main.exe -linput)时出现此错误

undefined reference to `getInput
collect2.exe: error: ld returned 1 exit status

我已经把C文件和头文件移到了GCC include文件夹中,把libinput.a移到了lib文件夹中。我也对我制作的另一个库做了同样的事情,但是效果很好。
经过进一步的挖掘,我发现当我右键单击函数“getinput”并单击“go to definition”时,它会转到input.c文件而不是input.h。在其他库中,它会将我重定向到library.h文件而不是library.c文件。这可能是问题所在,但我不知道如何修复它。
注意-运行gcc main.c libinput.a的同时在同一个目录中有libinput.a,但我更喜欢gcc main.c -o main.exe -linput(没有在同一个目录中,类似于其他库的工作方式)。在同一个目录中有input.cinput.h,然后链接它也可以工作。环境- VS代码在windows 10上
下面是我目前的代码:input.h

#ifndef INPUT_H
#define INPUT_H

void getInput(char *str, ...);

#endif

main.c(使用该库的示例代码)

#include <stdio.h>
#include <input.h>

int main()
{
    char *s = NULL;
    getInput("{s}", &s);
    printf("%s\n", s);
}

编辑-我通过将文件移动到以下位置修复了它
数据库管理系统
输入. c和输入. h = D:

uidvcgyl

uidvcgyl1#

您告诉链接器使用-L searchdir搜索其他目录。gcc会将该选项传递给链接器。

相关问题