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