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