2013-10-20 22 views
2

我是使用Qt Creator 2.8.1(Qt 5.1.1)开发的新手。为了实现一个基于ftp的应用程序,我搜索并发现使用QFtp是必要的,以便将其安装在当前的Qt版本中。所以我从https://qt.gitorious.org/qt/qtftp/下载了它。“错误:在这种情况下”在Qt 5中安装QFtp

在安装过程中,我遇到了下面的问题,但到目前为止还没有找到任何解决方案。它总是说“错误:此背景下”:

[email protected]:~$ cd Desktop/ 
[email protected]:~/Desktop$ cd qt-qtftp/ 
[email protected]:~/Desktop/qt-qtftp$ qmake 
[email protected]:~/Desktop/qt-qtftp$ make 
cd src/ && make -f Makefile 
make[1]: Entering directory `/home/leo/Desktop/qt-qtftp/src' 
cd qftp/ && make -f Makefile 
make[2]: Entering directory `/home/leo/Desktop/qt-qtftp/src/qftp' 
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4 -I. -o qftp.o qftp.cpp 
In file included from qftp.cpp:45:0: 
qftp.h: In member function ‘void QFtpPrivate::_q_startNextCommand()’: 
qftp.h:144:10: error: ‘void QFtp::commandStarted(int)’ is protected 
qftp.cpp:2201:33: error: within this context 
In file included from qftp.cpp:45:0: 
qftp.h:138:10: error: ‘void QFtp::stateChanged(int)’ is protected 
qftp.cpp:2254:39: error: within this context 
In file included from qftp.cpp:45:0: 
qftp.h: In member function ‘void QFtpPrivate::_q_piFinished(const QString&)’: 
qftp.h:145:10: error: ‘void QFtp::commandFinished(int, bool)’ is protected 
qftp.cpp:2278:48: error: within this context 
In file included from qftp.cpp:45:0: 
qftp.h:146:10: error: ‘void QFtp::done(bool)’ is protected 
qftp.cpp:2284:34: error: within this context 
In file included from qftp.cpp:45:0: 
qftp.h: In member function ‘void QFtpPrivate::_q_piError(int, const QString&)’: 
qftp.h:145:10: error: ‘void QFtp::commandFinished(int, bool)’ is protected 
qftp.cpp:2356:40: error: within this context 
In file included from qftp.cpp:45:0: 
qftp.h:146:10: error: ‘void QFtp::done(bool)’ is protected 
qftp.cpp:2361:26: error: within this context 
In file included from qftp.cpp:45:0: 
qftp.h: In member function ‘void QFtpPrivate::_q_piConnectState(int)’: 
qftp.h:138:10: error: ‘void QFtp::stateChanged(int)’ is protected 
qftp.cpp:2371:38: error: within this context 
In file included from qftp.cpp:45:0: 
qftp.h: In member function ‘void QFtpPrivate::_q_piFtpReply(int, const QString&)’: 
qftp.h:142:10: error: ‘void QFtp::rawCommandReply(int, const QString&)’ is protected 
qftp.cpp:2384:50: error: within this context 
make[2]: *** [qftp.o] Error 1 
make[2]: Leaving directory `/home/leo/Desktop/qt-qtftp/src/qftp' 
make[1]: *** [sub-qftp-make_default] Error 2 
make[1]: Leaving directory `/home/leo/Desktop/qt-qtftp/src' 
make: *** [sub-src-make_default] Error 2 

回答

1

你正在构建对Qt的4,但是这个代码显然是唯一的Qt 5和依赖于公职Qt中的5个信号(他们的Qt 4受到保护)。

看那包括路径为克++设置:

g++ -c [...] -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4 -I. -o qftp.o qftp.cpp 

Qt的4将全系统安装的包括被使用。

我认为这是一个意外,你只需要在Qt Creator中选择正确的Qt版本(Qt 5.1.1)。