我正在尝试使用不属于Qt Creator中c ++库的头文件和源文件。
我想要使用的头文件位于名为StanfordCPPLibrary的库中。
每次我尝试使用函数时都会得到一个未定义的引用错误。 在线研究后;我试图将正确的SOURCES,LIBS添加到.pro文件中 - 我每次都收到不同的错误(如果需要,我可以在这里发布)。
从我到目前为止的理解;这是一个链接器错误。如果有人能够指出错误是什么以及它为什么会引起我也可以学习,我将非常感激。 :)
嗨,
我正在尝试使用不属于Qt Creator中c ++库的头文件和源文件。
我想要使用的头文件位于名为StanfordCPPLibrary的库中。
gwindow.h文件是StanfordCPPLibrary的一部分。
每次我尝试使用函数时都会得到一个未定义的引用错误。
从我到目前为止的理解;这是一个链接器错误。如果有人能够指出错误是什么以及它为什么会引起我也可以学习,我将非常感激。 :)
/*
* 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:\Qt\Qt5.2.0\Tools\mingw48_32\lib\gcc\i686-w64- mingw32\4.8.0\include\StanfordCPPLib\
答案 0 :(得分:0)
使用库时,请将以下内容添加到您的专业文件中:
LIBS += -LPath\TO\LIB -lnameOfLib
这将告诉链接器要链接的内容以及在何处查找库。在库的名称中省略扩展名。
对于使用源,您需要将源(.cpp .h)复制到项目文件夹或子文件夹(或将其位置添加到源路径)并将它们包含在SOURCES和HEADERS中,或将它们添加为子项目,从而创建然后将链接的目标文件。如果使用子项目,则在原始.pro文件中包含子项目.pri文件。在http://doc.qt.digia.com/qtcreator/creator-project-creating.html
有一个关于“Subdir项目”的区块答案 1 :(得分:0)
我已使用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 release\main.o ..\Chap5\main.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 release\gwindow.o ..\Chap5\gwindow.cpp