这里要解决问题的是QT构建中的
error: undefined reference to
而不是
undefined reference to vtable for "xxx::xxx"
QT构建编译出现error: undefined reference to时,请先确认语法是否有错(建议单独新建一个项目只检查出错的代码是否语法有误)。本文由Coding库丁原创,如果确定语法无误,则尝试一下的方法:
这里以下列语句为例
QNetworkAccessManager *manager = new QNetworkAccessManager();
构建编译出现错误:
error: undefined reference to ……
用记事本或者notepad++打开项目文件(*.pro文件),内容如下:
#-------------------------------------------------
#
# Project created by QtCreator 2014-04-22T14:15:31
#
#-------------------------------------------------
QT += core
QT -= gui
TARGET = GetWebPageContent
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
HEADERS += \
myHeaderFile.h
(*.pro文件内容结束)
原来*.pro文件只添加了QT+=core,但是没有添加QNetworkAccessManager类所在的目录network,我们只需要添加相应的目录并且保存即可。本文由Coding库丁原创,修改后的*.pro文件内容如下:
#-------------------------------------------------
#
# Project created by QtCreator 2014-04-22T14:15:31
#
#-------------------------------------------------
QT += core
QT += network
QT -= gui
TARGET = GetWebPageContent
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
HEADERS += \
myHeaderFile.h
(*.pro文件内容结束)
再次构建,编译成功。