2012-12-28 79 views
4

我試圖用VS2010((我工作)重現Qt示例「webbrowser」(來自qt-everywhere-opensource-src-4.8.3/examples/activeqt/webbrwowser)在windows7 x64上)。錯誤LNK2019和LNK2001與VS2010和Qt庫

因此,我將web瀏覽器文件夾中的所有文件(.h和.cpp)複製到我的項目中 此外,在項目屬性 - >連接器 - >輸入 - >添加的指令以下庫:

phonon4.lib 
QAxServer.lib 
Qt3Support4.lib 
QtCLucene4.lib 
QtCore4.lib 
QtDeclarative4.lib 
QtDesigner4.lib 
QtDesignerComponents4.lib 
QtGui4.lib 
QtHelp4.lib 
Qtmain.lib 
QtMultimedia4.lib 
QtNetwork4.lib 
QtOpenGL4.lib 
QtScript4.lib 
QtScriptTools4.lib 
QtSql4.lib 
QtSvg4.lib 
QtTest4.lib 
QtUiTools.lib 
QtWebKit4.lib 
QtXml4.lib 
QtXmlPatterns4.lib 

現在,當我按下Debug按鈕,我得到這些錯誤:

1>------ Inizio compilazione: Progetto: web_browser, Configurazione: Debug Win32 ------ 
1> main.cpp 
1>main.obj : error LNK2019: riferimento al simbolo esterno "public: class QVariant __thiscall QAxBase::dynamicCall(char const *,class QVariant const &,class QVariant const &,class QVariant const &,class QVariant const &,class QVariant const &,class QVariant const &,class QVariant const &,class QVariant const &)" ([email protected]@@[email protected]@[email protected]@Z) non risolto nella funzione "public: __thiscall MainWindow::MainWindow(void)" ([email protected]@[email protected]) 
1>main.obj : error LNK2019: riferimento al simbolo esterno "public: bool __thiscall QAxBase::setControl(class QString const &)" ([email protected]@@[email protected]@@Z) non risolto nella funzione "public: void __thiscall Ui_MainWindow::setupUi(class QMainWindow *)" ([email protected][email protected]@[email protected]@@Z) 
1>main.obj : error LNK2019: riferimento al simbolo esterno "public: __thiscall QAxWidget::QAxWidget(class QWidget *,class QFlags<enum Qt::WindowType>)" ([email protected]@[email protected]@@[email protected]@[email protected]@@@@Z) non risolto nella funzione "public: __thiscall WebAxWidget::WebAxWidget(class QWidget *,class QFlags<enum Qt::WindowType>)" ([email protected]@[email protected]@@[email protected]@[email protected]@@@@Z) 
1>main.obj : error LNK2001: simbolo esterno "public: virtual struct QMetaObject const * __thiscall QAxWidget::metaObject(void)const " ([email protected]@@UBEPBU[email protected]@XZ) non risolto 
1>main.obj : error LNK2001: simbolo esterno "public: virtual void * __thiscall QAxWidget::qt_metacast(char const *)" ([email protected]@@[email protected]) non risolto 
1>main.obj : error LNK2001: simbolo esterno "public: virtual int __thiscall QAxWidget::qt_metacall(enum QMetaObject::Call,int,void * *)" ([email protected]@@[email protected]@@[email protected]) non risolto 
1>main.obj : error LNK2001: simbolo esterno "protected: virtual void __thiscall QAxWidget::connectNotify(char const *)" ([email protected]@@[email protected]) non risolto 
1>main.obj : error LNK2001: simbolo esterno "public: virtual class QSize __thiscall QAxWidget::sizeHint(void)const " ([email protected]@@[email protected]@XZ) non risolto 
1>main.obj : error LNK2001: simbolo esterno "public: virtual class QSize __thiscall QAxWidget::minimumSizeHint(void)const " ([email protected]@@[email protected]@XZ) non risolto 
1>main.obj : error LNK2001: simbolo esterno "protected: virtual void __thiscall QAxWidget::resizeEvent(class QResizeEvent *)" ([email protected]@@[email protected]@@Z) non risolto 
1>main.obj : error LNK2001: simbolo esterno "protected: virtual void __thiscall QAxWidget::changeEvent(class QEvent *)" ([email protected]@@[email protected]@@Z) non risolto 
1>main.obj : error LNK2001: simbolo esterno "public: virtual class QAxAggregated * __thiscall QAxWidget::createAggregate(void)" ([email protected]@@[email protected]@XZ) non risolto 
1>main.obj : error LNK2001: simbolo esterno "protected: virtual bool __thiscall QAxWidget::createHostWindow(bool)" ([email protected]@@[email protected]) non risolto 
1>main.obj : error LNK2001: simbolo esterno "public: virtual char const * __thiscall QAxWidget::className(void)const " ([email protected]@@UBEPBDXZ) non risolto 
1>main.obj : error LNK2001: simbolo esterno "public: virtual bool __thiscall QAxBase::propertyWritable(char const *)const " ([email protected]@@[email protected]) non risolto 
1>main.obj : error LNK2001: simbolo esterno "public: virtual void __thiscall QAxBase::setPropertyWritable(char const *,bool)" ([email protected]@@[email protected]) non risolto 
1>main.obj : error LNK2001: simbolo esterno "public: virtual void __thiscall QAxWidget::clear(void)" ([email protected]@@UAEXXZ) non risolto 
1>main.obj : error LNK2001: simbolo esterno "protected: virtual bool __thiscall QAxWidget::initialize(struct IUnknown * *)" ([email protected]@@[email protected]@@Z) non risolto 
1>main.obj : error LNK2001: simbolo esterno "private: virtual struct QMetaObject const * __thiscall QAxWidget::parentMetaObject(void)const " ([email protected]@@[email protected]@XZ) non risolto 
1>main.obj : error LNK2019: riferimento al simbolo esterno "protected: virtual bool __thiscall QAxWidget::translateKeyEvent(int,int)const " ([email protected]@@[email protected]) non risolto nella funzione "protected: virtual bool __thiscall WebAxWidget::translateKeyEvent(int,int)const " ([email protected]@@[email protected]) 
1>main.obj : error LNK2019: riferimento al simbolo esterno "public: virtual __thiscall QAxWidget::~QAxWidget(void)" ([email protected]@[email protected]) non risolto nella funzione "public: virtual __thiscall WebAxWidget::~WebAxWidget(void)" ([email protected]@[email protected]) 
1>C:\Users\Cristina\Desktop\OpenCV\Progetti\ARUCO\web_browser\Debug\web_browser.exe : fatal error LNK1120: 21 esterni non risolti 
========== Compilazione: 0 completate, 1 non riuscite, 0 aggiornate, 0 ignorate ========== 

這裏的main.cpp文件:

#include <C:/Users/Cristina/Desktop/OpenCV/dep/qt/qt-everywhere-opensource-src-4.8.3/include/QtGui/qapplication.h> 
#include <C:/Users/Cristina/Desktop/OpenCV/dep/qt/qt-everywhere-opensource-src-4.8.3/include/QtGui/QMessageBox> 
#include <C:/Users/Cristina/Desktop/OpenCV/dep/qt/qt-everywhere-opensource-src-4.8.3/include/QtGui/QProgressBar> 
#include <C:/Users/Cristina/Desktop/OpenCV/dep/qt/qt-everywhere-opensource-src-4.8.3/include/QtGui/QStatusBar> 
#include <C:/Users/Cristina/Desktop/OpenCV/dep/qt/qt-everywhere-opensource-src-4.8.3/include/QtGui/QMainWindow> 
#include <C:/Users/Cristina/Desktop/OpenCV/dep/qt/qt-everywhere-opensource-src-4.8.3/include/QtCore/QAbstractEventDispatcher> 

#if defined(Q_WS_WINCE_WM) 
#include "ui_mainwindow_windowsmobile.h" 
#include <windows.h> 
#else 
#include "ui_mainwindow.h" 
#endif 

//! [0] 
class MainWindow : public QMainWindow, public Ui::MainWindow 
{ 
    Q_OBJECT 
public: 
    MainWindow(); 

public slots: 
    void on_WebBrowser_TitleChange(const QString &title); 
    void on_WebBrowser_ProgressChange(int a, int b); 
    void on_WebBrowser_CommandStateChange(int cmd, bool on); 
    void on_WebBrowser_BeforeNavigate(); 
    void on_WebBrowser_NavigateComplete(QString); 

    void on_actionGo_triggered(); 
    void on_actionNewWindow_triggered(); 
    void on_actionAbout_triggered(); 
    void on_actionAboutQt_triggered(); 
    void on_actionFileClose_triggered(); 

private: 
    QProgressBar *pb; 
}; 
//! [0] //! [1] 

MainWindow::MainWindow() 
{ 
    setupUi(this); 

    connect(addressEdit, SIGNAL(returnPressed()), actionGo, SLOT(trigger())); 
    connect(actionBack, SIGNAL(triggered()), WebBrowser, SLOT(GoBack())); 
    connect(actionForward, SIGNAL(triggered()), WebBrowser, SLOT(GoForward())); 
    connect(actionStop, SIGNAL(triggered()), WebBrowser, SLOT(Stop())); 
    connect(actionRefresh, SIGNAL(triggered()), WebBrowser, SLOT(Refresh())); 
    connect(actionHome, SIGNAL(triggered()), WebBrowser, SLOT(GoHome())); 
    connect(actionSearch, SIGNAL(triggered()), WebBrowser, SLOT(GoSearch())); 

    pb = new QProgressBar(statusBar()); 
    pb->setTextVisible(false); 
    pb->hide(); 
    statusBar()->addPermanentWidget(pb); 

    WebBrowser->dynamicCall("GoHome()"); 
} 

//! [1] //! [2] 
void MainWindow::on_WebBrowser_TitleChange(const QString &title) 
{ 
    setWindowTitle("Qt WebBrowser - " + title); 
} 

void MainWindow::on_WebBrowser_ProgressChange(int a, int b) 
{ 
    if (a <= 0 || b <= 0) { 
    pb->hide(); 
    return; 
    } 
    pb->show(); 
    pb->setRange(0, b); 
    pb->setValue(a); 
} 

void MainWindow::on_WebBrowser_CommandStateChange(int cmd, bool on) 
{ 
    switch (cmd) { 
    case 1: 
    actionForward->setEnabled(on); 
    break; 
    case 2: 
    actionBack->setEnabled(on); 
    break; 
    } 
} 

void MainWindow::on_WebBrowser_BeforeNavigate() 
{ 
    actionStop->setEnabled(true); 
} 

void MainWindow::on_WebBrowser_NavigateComplete(QString) 
{ 
    actionStop->setEnabled(false); 
} 

//! [2] //! [3] 
void MainWindow::on_actionGo_triggered() 
{ 
    WebBrowser->dynamicCall("Navigate(const QString&)", addressEdit->text()); 
} 

void MainWindow::on_actionNewWindow_triggered() 
{ 
    MainWindow *window = new MainWindow; 
    window->show(); 
    if (addressEdit->text().isEmpty()) 
    return; 
    window->addressEdit->setText(addressEdit->text()); 
    window->actionStop->setEnabled(true); 
    window->on_actionGo_triggered(); 
} 

void MainWindow::on_actionAbout_triggered() 
{ 
    QMessageBox::about(this, tr("About WebBrowser"), 
     tr("This Example has been created using the ActiveQt integration into Qt Designer./n" 
      "It demonstrates the use of QAxWidget to embed the Internet Explorer ActiveX/n" 
      "control into a Qt application.")); 
} 

void MainWindow::on_actionAboutQt_triggered() 
{ 
    QMessageBox::aboutQt(this, tr("About Qt")); 
} 

void MainWindow::on_actionFileClose_triggered() 
{ 
    close(); 
} 

#include "C:/Users/Cristina/Desktop/OpenCV/dep/qt/qt-everywhere-opensource-src-4.8.3/examples/activeqt/webbrowser/tmp/moc/debug_shared/main.moc" 

//! [3] //! [4] 
int main(int argc, char ** argv) 
{ 
    QApplication a(argc, argv); 
    MainWindow w; 
#if defined(Q_OS_WINCE) 
    w.showMaximized(); 
#else 
    w.show(); 
#endif 
    return a.exec(); 
} 
//! [4] 

我哪裏錯了? 感謝您的幫助!

+0

當你對自己的問題有一個答案時,請爲你自己的問題添加一個答案,而不是改變標題。 – harper

+0

對不起......完成! – Cristina1986

回答

4

我解決了我的問題。我鏈接庫的發佈模式,但我編譯調試模式。所以正確的鏈接庫有:

 phonond4.lib 
    QAxServerd.lib 
    Qt3Supportd4.lib 
    QtCLucened4.lib 
    QtCored4.lib 
    QAxContainerd.lib 

等等。 希望對某人有所幫助!