尝试编译Qt应用程序时获取未解析的外部符号

尝试编译Qt应用程序时获取未解析的外部符号,qt,qt-creator,unresolved-external,Qt,Qt Creator,Unresolved External,我在QtCreator(QT 4.8.2)中创建了一个简单的GUI应用程序,并添加了一个检查网络连接的功能: bool MainWindow::CheckNetworkConnectivity() { QList<QNetworkInterface> interface = QNetworkInterface::allInterfaces(); for(int i = 0; i < interface.count();i++) { QNe

我在QtCreator(QT 4.8.2)中创建了一个简单的GUI应用程序,并添加了一个检查网络连接的功能:

bool MainWindow::CheckNetworkConnectivity()
{
    QList<QNetworkInterface> interface = QNetworkInterface::allInterfaces();
    for(int i = 0; i < interface.count();i++)
    {
        QNetworkInterface inface = interface.at(i);
        if(inface.IsUp && !inface.IsLoopBack)
        {
            ui->lstLog->addItem(inface.name()+QDateTime::currentDateTime().toString("h:m:s ap"));
            ui->chkConStatus->setChecked(true);
        }
        else{
            ui->chkConStatus->setChecked(false);
        }
    }
    return  ui->chkConStatus->checkState();
}
bool主窗口::检查网络连接()
{
QList接口=QNetworkInterface::allInterfaces();
对于(int i=0;ilstLog->addItem(inface.name()+QDateTime::currentDateTime().toString(“h:m:SAP”);
ui->chkConStatus->setChecked(true);
}
否则{
ui->chkConStatus->setChecked(false);
}
}
返回ui->chkConStatus->checkState();
}
之后,任何编译代码的尝试都会产生以下错误:

    15:21:11: Running steps for project MasterVPN...
15:21:11: Configuration unchanged, skipping qmake step.
15:21:11: Starting: "C:\Qt\Designer\bin\jom.exe" 
    C:\Qt\Designer\bin\jom.exe -f Makefile.Debug
    cl -c -nologo -Zm200 -Zc:wchar_t- -Zi -MDd -GR -EHsc -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"c:\Qt\4.8.2\include\QtCore" -I"c:\Qt\4.8.2\include\QtGui" -I"c:\Qt\4.8.2\include" -I"c:\Qt\4.8.2\include\ActiveQt" -I"debug" -I"." -I"..\MasterVPN" -I"." -I"c:\Qt\4.8.2\mkspecs\win32-msvc2010" -Fodebug\ @C:\Users\Master\AppData\Local\Temp\mainwindow.obj.4156.31.jom
mainwindow.cpp
    link /LIBPATH:"c:\Qt\4.8.2\lib" /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /MANIFEST /MANIFESTFILE:"debug\MasterVPN.intermediate.manifest" /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /OUT:debug\MasterVPN.exe @C:\Users\Master\AppData\Local\Temp\MasterVPN.exe.4156.5422.jom
mainwindow.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QNetworkInterface::~QNetworkInterface(void)" (__imp_??1QNetworkInterface@@QAE@XZ) referenced in function "public: bool __thiscall MainWindow::CheckNetworkConnectivity(void)" (?CheckNetworkConnectivity@MainWindow@@QAE_NXZ)
mainwindow.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class QString __thiscall QNetworkInterface::name(void)const " (__imp_?name@QNetworkInterface@@QBE?AVQString@@XZ) referenced in function "public: bool __thiscall MainWindow::CheckNetworkConnectivity(void)" (?CheckNetworkConnectivity@MainWindow@@QAE_NXZ)
mainwindow.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QNetworkInterface::QNetworkInterface(class QNetworkInterface const &)" (__imp_??0QNetworkInterface@@QAE@ABV0@@Z) referenced in function "public: bool __thiscall MainWindow::CheckNetworkConnectivity(void)" (?CheckNetworkConnectivity@MainWindow@@QAE_NXZ)
mainwindow.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static class QList<class QNetworkInterface> __cdecl QNetworkInterface::allInterfaces(void)" (__imp_?allInterfaces@QNetworkInterface@@SA?AV?$QList@VQNetworkInterface@@@@XZ) referenced in function "public: bool __thiscall MainWindow::CheckNetworkConnectivity(void)" (?CheckNetworkConnectivity@MainWindow@@QAE_NXZ)
debug\MasterVPN.exe : fatal error LNK1120: 4 unresolved externals
jom: C:\Users\Master\Documents\Qt\MasterVPN-build-desktop-Qt_4_8_2__4_8_2__Debug\Makefile.Debug [debug\MasterVPN.exe] Error 1120
jom: C:\Users\Master\Documents\Qt\MasterVPN-build-desktop-Qt_4_8_2__4_8_2__Debug\Makefile [debug] Error 2
15:21:17: The process "C:\Qt\Designer\bin\jom.exe" exited with code 2.
Error while building/deploying project MasterVPN (target: Desktop)
When executing step 'Make'
15:21:11:运行project MasterVPN的步骤。。。
15:21:11:配置未更改,跳过qmake步骤。
15:21:11:开始:“C:\Qt\Designer\bin\jom.exe”
C:\Qt\Designer\bin\jom.exe-f Makefile.Debug
c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-D-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-nonononononolololololololololololololo库库库-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-nolo我“c:\Qt\4.8.2\include\ActiveQt“-I”debug“-I”。“-I”。。\MasterVPN“-I”。-I”c:\Qt\4.8.2\mkspecs\win32-msvc2010“-Fodebug\@c:\Users\Master\AppData\Local\Temp\mainwindow.obj.4156.31.jom”
mainwindow.cpp
link/LIBPATH:“c:\Qt\4.8.2\lib”/NOLOGO/DYNAMICBASE/NXCOMPAT/DEBUG/MANIFEST/MANIFESTFILE:“DEBUG\MasterVPN.intermediate.MANIFEST”/SUBSYSTEM:WINDOWS”/MANIFESTDEPENDENCY:type='win32'name='Microsoft.WINDOWS.Common Controls'version='6.0.0.0'publicKeyToken='6595b64144ccf1df'language='*'processorArchitecture='*'“/OUT:debug\MasterVPN.exe@C:\Users\Master\AppData\Local\Temp\MasterVPN.exe.4156.5422.jom
mainwindow.obj:错误LNK2019:未解析的外部符号“\uuu declspec(dllimport)public:\uu此调用QNetworkInterface::~QNetworkInterface(void)”(\uuu imp?\u1QNetworkInterface@@QAE@XZ)在函数“public:bool\uu thiscall main window::CheckNetworkConnectivity(void)”中引用(?CheckNetworkConnectivity@MainWindow@@QAE_NXZ)
mainwindow.obj:错误LNK2019:未解析的外部符号“\uuuu declspec(dllimport)public:class QString\uuuu thiscall QNetworkInterface::name(void)const”(\uuuuu imp\ux?name@QNetworkInterface@@QBE?AVQString@@XZ)在函数“public:bool\uu thiscall main window::CheckNetworkConnectivity(void)”中引用(?CheckNetworkConnectivity@MainWindow@@QAE_NXZ)
mainwindow.obj:错误LNK2019:未解析的外部符号“\uuu declspec(dllimport)public:\uuu此调用QNetworkInterface::QNetworkInterface(类QNetworkInterface const&”)”(\uuu imp\u0QNetworkInterface@@QAE@ABV0@@Z) 在函数“public:bool\uu thiscall main window::CheckNetworkConnectivity(void)”中引用(?CheckNetworkConnectivity@MainWindow@@QAE_NXZ)
mainwindow.obj:错误LNK2019:未解析的外部符号“\uuuu declspec(dllimport)public:静态类QList\uuuuuu cdecl QNetworkInterface::AllInterface(void)”(\uuuu imp\ux?allInterfaces@QNetworkInterface@@SA?AV$QList@VQNetworkInterface@@@@XZ)在函数“public:bool\uu thiscall main window::CheckNetworkConnectivity(void)”中引用(?CheckNetworkConnectivity@MainWindow@@QAE_NXZ)
debug\MasterVPN.exe:致命错误LNK1120:4个未解析的外部
jom:C:\Users\Master\Documents\Qt\MasterVPN-build-desktop-Qt_4_8_2_4_8_2_调试\Makefile.Debug[Debug\MasterVPN.exe]错误1120
jom:C:\Users\Master\Documents\Qt\MasterVPN-build-desktop-Qt_4_8_2_4_8_2_调试\Makefile[Debug]错误2
15:21:17:进程“C:\Qt\Designer\bin\jom.exe”已退出,代码为2。
生成/部署project MasterVPN时出错(目标:桌面)
执行步骤“Make”时

有人能指出原因吗?

链接器表示找不到所需的功能。这包含在QtNetwork4.lib中(如果您在Windows平台上)或平台的等效库。因此,您必须告诉链接器它需要与此库进行链接。网络模块是必需的模块,而不仅仅是

QT += core gui
至少要做到这一点

QT += core gui network

这应该可以修复你看到的链接器错误。

你在.pro文件中添加了网络模块吗?
QT+=network
没有!我只包含了标题,就这样。顺便说一下,做QT+=core gui QT+=QtNetwork也不起作用。所以,你应该这样做:
QT+=core gui network
@Bart:it wroked:)谢谢。请以asnwer的身份发布。)