Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 尝试在Qt中继承QLCDNumber时出现问题_C++_Qt_Inheritance_Qwidget_Lnk2019 - Fatal编程技术网

C++ 尝试在Qt中继承QLCDNumber时出现问题

C++ 尝试在Qt中继承QLCDNumber时出现问题,c++,qt,inheritance,qwidget,lnk2019,C++,Qt,Inheritance,Qwidget,Lnk2019,这是我从QLCDNAMER继承的定制LCD类 myLCD.h: 没有比这更基本的了 在main.cpp文件中,我包含了“myLCD.h”,一切都正常工作 但当我尝试实例化myLCD对象时: MyLCD* lcd = new MyLCD; 我发现以下问题: *main.obj:-1:错误:LNK2019:未解析的外部符号“public: __此调用MyLCD::MyLCD(类QWidget*)“(??0MyLCD@@QAE@PAVQWidget@@@Z) 在函数_main中引用* debug\

这是我从QLCDNAMER继承的定制LCD类

myLCD.h:

没有比这更基本的了

在main.cpp文件中,我包含了“myLCD.h”,一切都正常工作

但当我尝试实例化myLCD对象时:

MyLCD* lcd = new MyLCD;
我发现以下问题:

  • *main.obj:-1:错误:LNK2019:未解析的外部符号“public: __此调用MyLCD::MyLCD(类QWidget*)“(??0MyLCD@@QAE@PAVQWidget@@@Z) 在函数_main中引用*

  • debug\partie2.exe:-1:错误:LNK1120:1未解析的外部

知道那是什么吗


编辑:我正在使用QtCreator

编辑2):这是编译结果的输出

14:33:28: Running steps for project partie2...
14:33:28: Configuration unchanged, skipping qmake step.
14:33:28: Starting: "C:\Qt\Qt5.0.0\Tools\QtCreator\bin\jom.exe" 
    C:\Qt\Qt5.0.0\Tools\QtCreator\bin\jom.exe -f Makefile.Debug
    echo 1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ "debug\\partie2.exe.embed.manifest">debug\partie2.exe_manifest.rc
    if not exist debug\partie2.exe del debug\partie2.exe.embed.manifest>NUL 2>&1
    if exist debug\partie2.exe.embed.manifest copy /Y debug\partie2.exe.embed.manifest debug\partie2.exe_manifest.bak
    link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:debug\partie2.exe.embed.manifest /OUT:debug\partie2.exe @C:\Users\val\AppData\Local\Temp\partie2.exe.10692.62.jom
main.obj : error LNK2019: unresolved external symbol "public: __thiscall MyLCD::MyLCD(class QWidget *)" (??0MyLCD@@QAE@PAVQWidget@@@Z) referenced in function _main
debug\partie2.exe : fatal error LNK1120: 1 unresolved externals
jom: H:\Fac\L3\S6\IHM\practical\Qt\TP2\sources\partie2\partie2-build-Desktop_Qt_5_0_0_MSVC2010_32bit_SDK-Debug\Makefile.Debug [debug\partie2.exe] Error 1120
jom: H:\Fac\L3\S6\IHM\practical\Qt\TP2\sources\partie2\partie2-build-Desktop_Qt_5_0_0_MSVC2010_32bit_SDK-Debug\Makefile [debug] Error 2
14:33:29: The process "C:\Qt\Qt5.0.0\Tools\QtCreator\bin\jom.exe" exited with code 2.
Error while building/deploying project partie2 (kit: Desktop Qt 5.0.0 MSVC2010 32bit (SDK))
When executing step 'Make'

我回答了我自己的问题,因为这个bug在逻辑上不太可靠

我终于删除了我的调试文件夹

当我再次构建时,调试文件夹被重新创建,没有显示任何问题


我真的不知道原因是什么,因为什么时候我们应该在一个可靠的IDE中处理文件系统?

MyLCD的实现在哪里?在
main.cpp
文件中?而且,我想它应该是新的MyLCD(大写M),对吗?编辑得好:)你如何链接?命令行,还是通过某个IDE?链接器调用看起来如何?看起来可能是您的myLCD.cpp文件没有进入构建过程?您是否正确地将其视为QtCreator中的源文件?如果没有,请添加它并重新生成。您是否忘记了Q_对象宏并在以后添加了它?如果是这样的话,运行qmake而不是build。呃,我在QtCreator中已经多次遇到这个问题。完全重建甚至不能解决问题,您必须删除调试/发布文件夹才能使所有内容正确链接。Visual Studio没有这个问题,它使用的是同一个编译器…QtCreator中有命令“run qmake”,我想这也解决了问题(?)我现在还没有使用这个编译,因为我以前总是构建和运行我的所有应用程序
MyLCD* lcd = new MyLCD;
14:33:28: Running steps for project partie2...
14:33:28: Configuration unchanged, skipping qmake step.
14:33:28: Starting: "C:\Qt\Qt5.0.0\Tools\QtCreator\bin\jom.exe" 
    C:\Qt\Qt5.0.0\Tools\QtCreator\bin\jom.exe -f Makefile.Debug
    echo 1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ "debug\\partie2.exe.embed.manifest">debug\partie2.exe_manifest.rc
    if not exist debug\partie2.exe del debug\partie2.exe.embed.manifest>NUL 2>&1
    if exist debug\partie2.exe.embed.manifest copy /Y debug\partie2.exe.embed.manifest debug\partie2.exe_manifest.bak
    link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:debug\partie2.exe.embed.manifest /OUT:debug\partie2.exe @C:\Users\val\AppData\Local\Temp\partie2.exe.10692.62.jom
main.obj : error LNK2019: unresolved external symbol "public: __thiscall MyLCD::MyLCD(class QWidget *)" (??0MyLCD@@QAE@PAVQWidget@@@Z) referenced in function _main
debug\partie2.exe : fatal error LNK1120: 1 unresolved externals
jom: H:\Fac\L3\S6\IHM\practical\Qt\TP2\sources\partie2\partie2-build-Desktop_Qt_5_0_0_MSVC2010_32bit_SDK-Debug\Makefile.Debug [debug\partie2.exe] Error 1120
jom: H:\Fac\L3\S6\IHM\practical\Qt\TP2\sources\partie2\partie2-build-Desktop_Qt_5_0_0_MSVC2010_32bit_SDK-Debug\Makefile [debug] Error 2
14:33:29: The process "C:\Qt\Qt5.0.0\Tools\QtCreator\bin\jom.exe" exited with code 2.
Error while building/deploying project partie2 (kit: Desktop Qt 5.0.0 MSVC2010 32bit (SDK))
When executing step 'Make'