1
唉,這是令人尷尬愚蠢的問題:通過Qt Creator C++嚮導創建QLabel的子類?
環境:Qt的5.1 Qt創建者2.8 OSX 1.7.5;
如何通過Qt Creator C++嚮導創建QLabel的子類?
具體而言,什麼是base class
和type information
?我嘗試過三種不同的方法,最終得到各種編譯錯誤(下文)。 Qt一直工作正常,所以似乎不像安裝問題,所以它必須是...用戶問題。
答:基類只是QLabel
和類型的信息是QWidget
顯然,我有一些其他的問題要在其上引起編譯錯誤。
如果我設置的類型信息QWidget
或None
我得到的錯誤
symbol(s) not found for architecture x86_64
如果我設置的類型信息QObject
我得到的錯誤:
invalid conversion from 'QObject*' to 'QWidget*'
UPDATE
01:25:29: Running steps for project LabelImageTest...
01:25:29: Configuration unchanged, skipping qmake step.
01:25:29: Starting: "/usr/bin/make"
/Applications/Xcode.app/Contents/Developer/usr/bin/g++ -c -pipe -g -gdwarf-2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -mmacosx-version-min=10.6 -Wall -W -fPIE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/Users/rise/Qt/5.1.0/clang_64/mkspecs/macx-g++ -I/Users/rise/QT_workspace/LabelImageTest -I/Users/rise/Qt/5.1.0/clang_64/include -I/Users/rise/Qt/5.1.0/clang_64/include/QtWidgets -I/Users/rise/Qt/5.1.0/clang_64/lib/QtWidgets.framework/Headers -I/Users/rise/Qt/5.1.0/clang_64/include/QtGui -I/Users/rise/Qt/5.1.0/clang_64/lib/QtGui.framework/Headers -I/Users/rise/Qt/5.1.0/clang_64/include/QtCore -I/Users/rise/Qt/5.1.0/clang_64/lib/QtCore.framework/Headers -I. -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/AGL.framework/Headers -I. -I. -F/Users/rise/Qt//5.1.0/clang_64/lib -o mainwindow.o /Users/rise/QT_workspace/LabelImageTest/mainwindow.cpp
/Applications/Xcode.app/Contents/Developer/usr/bin/g++ -c -pipe -g -gdwarf-2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -mmacosx-version-min=10.6 -Wall -W -fPIE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/Users/rise/Qt/5.1.0/clang_64/mkspecs/macx-g++ -I/Users/rise/QT_workspace/LabelImageTest -I/Users/rise/Qt/5.1.0/clang_64/include -I/Users/rise/Qt/5.1.0/clang_64/include/QtWidgets -I/Users/rise/Qt/5.1.0/clang_64/lib/QtWidgets.framework/Headers -I/Users/rise/Qt/5.1.0/clang_64/include/QtGui -I/Users/rise/Qt/5.1.0/clang_64/lib/QtGui.framework/Headers -I/Users/rise/Qt/5.1.0/clang_64/include/QtCore -I/Users/rise/Qt/5.1.0/clang_64/lib/QtCore.framework/Headers -I. -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/AGL.framework/Headers -I. -I. -F/Users/rise/Qt//5.1.0/clang_64/lib -o customlabel.o /Users/rise/QT_workspace/LabelImageTest/customlabel.cpp
/Users/rise/Qt/5.1.0/clang_64/bin/rcc -name images /Users/rise/QT_workspace/LabelImageTest/images.qrc -o qrc_images.cpp
/Applications/Xcode.app/Contents/Developer/usr/bin/g++ -c -pipe -g -gdwarf-2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -mmacosx-version-min=10.6 -Wall -W -fPIE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/Users/rise/Qt/5.1.0/clang_64/mkspecs/macx-g++ -I/Users/rise/QT_workspace/LabelImageTest -I/Users/rise/Qt/5.1.0/clang_64/include -I/Users/rise/Qt/5.1.0/clang_64/include/QtWidgets -I/Users/rise/Qt/5.1.0/clang_64/lib/QtWidgets.framework/Headers -I/Users/rise/Qt/5.1.0/clang_64/include/QtGui -I/Users/rise/Qt/5.1.0/clang_64/lib/QtGui.framework/Headers -I/Users/rise/Qt/5.1.0/clang_64/include/QtCore -I/Users/rise/Qt/5.1.0/clang_64/lib/QtCore.framework/Headers -I. -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/AGL.framework/Headers -I. -I. -F/Users/rise/Qt//5.1.0/clang_64/lib -o qrc_images.o qrc_images.cpp
/Users/rise/Qt//5.1.0/clang_64/bin/moc -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -D__APPLE__ -D__GNUC__=4 -I/Users/rise/Qt/5.1.0/clang_64/mkspecs/macx-g++ -I/Users/rise/QT_workspace/LabelImageTest -I/Users/rise/Qt/5.1.0/clang_64/include -I/Users/rise/Qt/5.1.0/clang_64/include/QtWidgets -I/Users/rise/Qt/5.1.0/clang_64/lib/QtWidgets.framework/Headers -I/Users/rise/Qt/5.1.0/clang_64/include/QtGui -I/Users/rise/Qt/5.1.0/clang_64/lib/QtGui.framework/Headers -I/Users/rise/Qt/5.1.0/clang_64/include/QtCore -I/Users/rise/Qt/5.1.0/clang_64/lib/QtCore.framework/Headers -I. -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/AGL.framework/Headers -I. -I. -F/Users/rise/Qt//5.1.0/clang_64/lib /Users/rise/QT_workspace/LabelImageTest/mainwindow.h -o moc_mainwindow.cpp
/Applications/Xcode.app/Contents/Developer/usr/bin/g++ -c -pipe -g -gdwarf-2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -mmacosx-version-min=10.6 -Wall -W -fPIE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/Users/rise/Qt/5.1.0/clang_64/mkspecs/macx-g++ -I/Users/rise/QT_workspace/LabelImageTest -I/Users/rise/Qt/5.1.0/clang_64/include -I/Users/rise/Qt/5.1.0/clang_64/include/QtWidgets -I/Users/rise/Qt/5.1.0/clang_64/lib/QtWidgets.framework/Headers -I/Users/rise/Qt/5.1.0/clang_64/include/QtGui -I/Users/rise/Qt/5.1.0/clang_64/lib/QtGui.framework/Headers -I/Users/rise/Qt/5.1.0/clang_64/include/QtCore -I/Users/rise/Qt/5.1.0/clang_64/lib/QtCore.framework/Headers -I. -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/AGL.framework/Headers -I. -I. -F/Users/rise/Qt//5.1.0/clang_64/lib -o moc_mainwindow.o moc_mainwindow.cpp
/Users/rise/Qt//5.1.0/clang_64/bin/moc -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -D__APPLE__ -D__GNUC__=4 -I/Users/rise/Qt/5.1.0/clang_64/mkspecs/macx-g++ -I/Users/rise/QT_workspace/LabelImageTest -I/Users/rise/Qt/5.1.0/clang_64/include -I/Users/rise/Qt/5.1.0/clang_64/include/QtWidgets -I/Users/rise/Qt/5.1.0/clang_64/lib/QtWidgets.framework/Headers -I/Users/rise/Qt/5.1.0/clang_64/include/QtGui -I/Users/rise/Qt/5.1.0/clang_64/lib/QtGui.framework/Headers -I/Users/rise/Qt/5.1.0/clang_64/include/QtCore -I/Users/rise/Qt/5.1.0/clang_64/lib/QtCore.framework/Headers -I. -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/AGL.framework/Headers -I. -I. -F/Users/rise/Qt//5.1.0/clang_64/lib /Users/rise/QT_workspace/LabelImageTest/customlabel.h -o moc_customlabel.cpp
/Applications/Xcode.app/Contents/Developer/usr/bin/g++ -c -pipe -g -gdwarf-2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -mmacosx-version-min=10.6 -Wall -W -fPIE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/Users/rise/Qt/5.1.0/clang_64/mkspecs/macx-g++ -I/Users/rise/QT_workspace/LabelImageTest -I/Users/rise/Qt/5.1.0/clang_64/include -I/Users/rise/Qt/5.1.0/clang_64/include/QtWidgets -I/Users/rise/Qt/5.1.0/clang_64/lib/QtWidgets.framework/Headers -I/Users/rise/Qt/5.1.0/clang_64/include/QtGui -I/Users/rise/Qt/5.1.0/clang_64/lib/QtGui.framework/Headers -I/Users/rise/Qt/5.1.0/clang_64/include/QtCore -I/Users/rise/Qt/5.1.0/clang_64/lib/QtCore.framework/Headers -I. -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/AGL.framework/Headers -I. -I. -F/Users/rise/Qt//5.1.0/clang_64/lib -o moc_customlabel.o moc_customlabel.cpp
/Applications/Xcode.app/Contents/Developer/usr/bin/g++ -headerpad_max_install_names -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -mmacosx-version-min=10.6 -o LabelImageTest.app/Contents/MacOS/LabelImageTest main.o mainwindow.o customlabel.o qrc_images.o moc_mainwindow.o moc_customlabel.o -F/Users/rise/Qt//5.1.0/clang_64/lib -framework QtWidgets -F/Users/rise/Qt//5.1.0/clang_64/qtbase/lib -framework QtGui -framework QtCore -framework OpenGL -framework AGL
ld: warning: directory not found for option '-F/Users/rise/Qt//5.1.0/clang_64/qtbase/lib'
Undefined symbols for architecture x86_64:
"MainWindow::on_label_linkActivated(QString const&)", referenced from:
MainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)in moc_mainwindow.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make: *** [LabelImageTest.app/Contents/MacOS/LabelImageTest] Error 1
01:25:34: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project LabelImageTest (kit: QT 5.1)
When executing step 'Make'
01:25:34: Elapsed time: 00:05.
謝謝 - 是的,這就是我所擁有的。只是用你的代碼嘗試了它,仍然得到錯誤「error:symbol(s)not found for architecture x86_64」我猜其他事情正在發生。 –
你可以在你的問題中粘貼完整的錯誤嗎?,整個編譯輸出。這個問題似乎是安裝問題。 – Kunal
剛剛更新我的問題與編譯輸出。我在這裏使用OSX的在線安裝程序安裝了Qt 5.1:http://qt-project.org/downloads - 確定新的更新:剛剛開始新項目的一個新會話,並通過C++嚮導創建了一個定製的QLabel,並且工作正常。我一直在推動/降級之前的文件中的QLabels,所以也許我搞砸了。我會將此標記爲已接受/感謝您的幫助。 –