我正在使用库名称 cpt 在 Ubuntu 中运行我的程序。我从库中包含了所需的头文件,但程序无法运行,因为它无法访问头文件中的函数。(它显示错误)我还必须包含 .cpp 文件,其中包含函数的完整定义。我现在通过包含与所需标头关联的 .cpp 文件来运行我的程序。尽管编译时我有 -I/Desktop/cpt,但为什么我会收到此错误?
问问题
1062 次
3 回答
0
也许您应该将您的程序与相应的共享/静态库链接,该库提供头文件中声明的那些函数的实现?
于 2013-07-09T19:01:12.813 回答
0
Vladimirm 是正确的,您不需要#include .cpp 文件。头文件应该在有或没有相关的 .cpp 文件的情况下进行编译。所有 .cpp 文件在称为链接的过程中链接在一起,但头文件在链接期间提供函数的原型。
您是否在#include 周围使用尖括号?例如
#include <mylib.h>
如果是这样,您可能会考虑切换到双引号,例如
#include "mylib.h"
根据您引用的源文件所在的位置,这可能是问题所在。
于 2013-07-09T19:08:52.533 回答
0
您不应该包含 .cpp 文件,它们应该被编译,您应该向编译器指定要编译的 .cpp 文件,以及在哪里可以找到 .cpp 文件所需的 .h 文件。
于 2013-07-09T17:45:46.710 回答