Q我不断收到由于库函数未定义而导致的错误,但我已经 #include 了所有正确的头文件。
A在调用外部库中的代码的一般情况下,使用#include来引入正确的头文件只是故事的一半;您还必须告诉链接器去搜索外部库本身。头文件中的声明只告诉编译器如何调用外部函数;头文件不提供外部函数的定义,也不告诉编译器/链接器在哪里可以找到这些定义。
在某些情况下(特别是如果函数是非标准的),获取这些定义可能需要在链接程序时明确要求搜索正确的库。(有些系统可能可以安排,每当您#include一个头文件,其关联的库(如果是非标准的)在链接时会被自动请求,但这并非普遍适用的功能。)另请参阅问题 10.11、11.30、13.26、14.3 和 19.40。