C++对方法和What-if所有东西都转到.h的未定义引用
C++ undefined reference to method and What if all stuff go to .h?
我在下面写的简单C++代码出现编译错误
"对'featureExtract'()'的未定义引用"(在窗口下使用代码块),
在FeaureExtract.h
中
#ifndef FEATUREEXTRACT_H_INCLUDED
#define FEATUREEXTRACT_H_INCLUDED
extern void featureExtract();
#endif // FEATUREEXTRACT_H_INCLUDED
在FeatureExtract.cpp
中
#include "FeatureExtract.h"
void featureExtract()
{
some code
}
在main.cpp
中
#include "FeatureExtract.h"
int main()
{
featureExtract();
}
我使用关键字"C++undefined-reference to"搜索了SO,并阅读了数十个条目(其中许多是class或Linux下的条目),但我无法解决自己的问题(我不知道为什么)
感谢任何提示~
在解决这个问题之前,我别无选择,只能把所有的工作人员都放在FeatureExtract.h中,它有效,但似乎不好。这篇文章(为什么C++中有头文件和.cpp文件?)解释了.h文件的主要优点是"将接口与实现分离",我想知道将所有接口和实现放在.h文件中是否会有其他效果?
谢谢~
看起来您没有将两个对象文件链接到最终的二进制文件中。不幸的是,我不熟悉代码块,但请确保所有的.cpp
文件都已添加到您的项目中。
另一种不太可能的可能性是,两个cpp文件之间的名称装饰有所不同。确保您使用C++来编译这两个文件,并且其中一个文件不会编译为C代码。
您发布的代码看起来不错。正如泽塔所说,所有文件都在同一个项目中吗?
相关文章:
- 编译C++时未定义的引用
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- 未定义的引用在哪里
- 编译时的 CImg 库返回对"__imp_SetDIBitsToDevice"的未定义引用
- 对Py_Initialize()的未定义引用
- 使用mysql c++连接器的未定义引用
- 未定义的引用 .. 使用 OpenCV 编译 C++ 代码时,从命令行
- 对 Scalar ::Scalar() 的未定义引用
- 已定义函数时出现 G++ "未定义的引用"错误
- 链接 cmake 时出现未定义的引用错误
- 对复制 CTOR 和 CTOR 的未定义引用
- 错误:未定义对'oboe::AudioStreamBuilder::openStream(oboe::AudioStream**)'的引用
- 右值引用未定义的行为
- 对"vtable for DigitalClock"的未定义引用 - 未定义对"DigitalClock::staticMetaObject"的引用 - Qt
- 函数类型到函数类型的引用:未定义的引用
- avcodec_alloc_context引用未定义,但ffmpeg链接顺序正确
- 从c++调用Fortran子程序,链接时引用未定义
- 枚举引用未定义,但位于包含的头文件中