未定义的引用错误
Undefined Reference Error
我正在尝试使用Qt Creator中不属于c++库的头文件和源文件。
我尝试使用的头文件在一个名为StanfordCPPLibrary的库中。
每次我尝试使用中的函数时,都会得到一个未定义的引用错误。在网上研究之后;我试图将正确的SOURCES、LIBS添加到.pro文件中——每次我都收到不同的错误(如果需要,我可以在这里发布它们)。
从我目前的理解来看;这是一个链接器错误。如果有人能指出错误是什么以及为什么会造成错误,我将不胜感激,以便我也能学习。:)
你好,
我正在尝试使用Qt Creator中不属于c++库的头文件和源文件。
我尝试使用的头文件在一个名为StanfordCPPLibrary的库中。
gwindow.h文件是StanfordCPL库的一部分。
每次我尝试使用中的函数时,都会得到一个未定义的引用错误。
从我目前的理解来看;这是一个链接器错误。如果有人能指出错误是什么以及为什么会造成错误,我将不胜感激,以便我也能学习。:)
/*
* File: Rainbow.cpp
* --------------------------------------
* This program creates a rainbow that occupies a percentage of the screen chosen by the end user
*/
#include <iostream>
#include "gwindow.h"
/*Function Prototype*/
void drawRainbow(GWindow & gw);
int main ()
{
GWindow gw;
drawRainbow(gw);
return 0;
}
void drawRainbow(GWindow & gw)
{
gw.drawRect(2, 2, 5, 5);
}
这是项目文件:
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += main.cpp
INCLUDEPATH = C:QtQt5.2.0Toolsmingw48_32libgcci686-w64- mingw324.8.0includeStanfordCPPLib
要使用库,请将以下内容添加到您的专业文件中:
LIBS += -LPathTOLIB -lnameOfLib
这将告诉链接器链接什么以及在哪里可以找到库。在库的名称中省略扩展名。
要使用源,您需要将源(.cpp.h)复制到项目文件夹或子文件夹中(或将其位置添加到源路径中),并将其包含在sources和HEADERS中,或将其作为子项目添加,从而创建将被链接的对象文件。如果使用子项目,请将子项目.pri文件包含在原始.pro文件中。上有一个关于"Subdir Projects"的块http://doc.qt.digia.com/qtcreator/creator-project-creating.html
我已经用gwindow.cpp文件更新了我的项目文件夹。因此,要添加的唯一源文件是gwindow.cpp文件。我再次构建了源代码,并收到了相同的未定义引用错误——其中81个。以下是makefile.release在编译部分显示的内容。
####### Compile
release/main.o: ../Chap5/main.cpp ../Chap5/StanfordCPPLib/gwindow.h
../Chap5/StanfordCPPLib/gtypes.h
../Chap5/StanfordCPPLib/vector.h
../Chap5/StanfordCPPLib/foreach.h
../Chap5/StanfordCPPLib/strlib.h
../Chap5/StanfordCPPLib/console.h
../Chap5/StanfordCPPLib/private/main.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o releasemain.o ..Chap5main.cpp
release/gwindow.o: ../Chap5/gwindow.cpp ../Chap5/StanfordCPPLib/gevents.h
../Chap5/StanfordCPPLib/gtimer.h
../Chap5/StanfordCPPLib/gwindow.h
../Chap5/StanfordCPPLib/gtypes.h
../Chap5/StanfordCPPLib/vector.h
../Chap5/StanfordCPPLib/foreach.h
../Chap5/StanfordCPPLib/strlib.h
../Chap5/StanfordCPPLib/console.h
../Chap5/StanfordCPPLib/private/main.h
../Chap5/StanfordCPPLib/gobjects.h
../Chap5/StanfordCPPLib/gmath.h
../Chap5/StanfordCPPLib/map.h
../Chap5/StanfordCPPLib/stack.h
../Chap5/StanfordCPPLib/platform.h
../Chap5/StanfordCPPLib/sound.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o releasegwindow.o ..Chap5gwindow.cpp
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- C++引用错误
- 已定义函数时出现 G++ "未定义的引用"错误
- 错误:使用通用引用的声明冲突
- 链接 cmake 时出现未定义的引用错误
- 错误:未定义对'oboe::AudioStreamBuilder::openStream(oboe::AudioStream**)'的引用
- 链接器错误:未定义对"Reference_Genome::seq[abi:cxx11]"的引用
- C++ 中的编译错误:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- 错误:无法解析对重载函数的引用;你的意思是调用它吗?
- 在 gtest 中初始化堆栈上的引用变量的隔离错误
- 运行时错误:引用绑定到类型为"int"的空指针
- 隐式重新解释引用时强制转换,没有警告/错误
- 只有级联分类器会发出未定义的引用错误
- 错误:未定义对cv::cudacodec::createVideoReader的引用
- 模板流运算符重载错误:引用初始化无效,与basic_istream和basic_ifstream之间的差异有关
- 对于我的 ComplexNumber 中的某些方法,我得到了一个奇怪的未定义错误引用.cpp,不过我对模板很陌生
- 从对象调用成员对象,错误:引用非常量值的初始值必须是左值
- Qt并发错误:引用非静态成员