我的编译器有问题,告诉我有一个“未定义的引用”我想在库中使用的函数。让我分享一些关于这个问题的信息:
- 我正在使用 gcc for C 进行交叉编译。
- 我正在调用一个库函数,该函数通过包含的标头访问,该标头包含另一个包含原型的标头。
- 我已经使用 -I 包含了 headers 目录,并且我确定它已被找到。
- 我首先创建 .o 文件,然后将它们链接到单独的命令中。
所以我的想法是这可能是我包含库文件的顺序,但我不确定订购它们的正确方法是什么。我尝试在 .o 文件之前和之后包含 headers 文件夹。
一些建议会很棒,也许还有对链接器如何做事的解释。
谢谢!
对答案的回应
- 没有 .a 库文件,只有 .h 和 .c 在库中,所以 -l 不合适
- 我对库文件的理解是它只是头文件和源文件的集合,但也许它是从源创建的 .o 文件的集合?!
- 没有创建库目标文件,也许应该有?是的,似乎我不明白包含和库之间的区别......我会努力的:-)
感谢所有的回复!我学到了很多关于图书馆的知识。我想把所有的回复都作为接受的答案:-)