• 7081阅读
  • 2回复

[提问]用vs2008+QT4.8.4编译QFtp出错 [复制链接]

上一主题 下一主题
离线davie
 

只看楼主 倒序阅读 楼主  发表于: 2014-01-02
如题,我想在QFTP类里添加一些代码,以实现特定FTP功能,但下载QFTP后编译时出问题,总是报信号为保护类型,编译时错误如下,请问有没有人遇到这样的情况,又该如何解决?期待达人的指点!



1>qftp.cpp
1>.\qftp.cpp(2210) : error C2248: 'QFtp::commandStarted' : cannot access protected member declared in class 'QFtp'
1>        c:\users\user\desktop\dsbyliteexample-master\qftpseriesdown\qftp.h(144) : see declaration of 'QFtp::commandStarted'
1>        c:\users\user\desktop\dsbyliteexample-master\qftpseriesdown\qftp.h(53) : see declaration of 'QFtp'
1>.\qftp.cpp(2267) : error C2248: 'QFtp::stateChanged' : cannot access protected member declared in class 'QFtp'
1>        c:\users\user\desktop\dsbyliteexample-master\qftpseriesdown\qftp.h(138) : see declaration of 'QFtp::stateChanged'
1>        c:\users\user\desktop\dsbyliteexample-master\qftpseriesdown\qftp.h(53) : see declaration of 'QFtp'
1>.\qftp.cpp(2291) : error C2248: 'QFtp::commandFinished' : cannot access protected member declared in class 'QFtp'
1>        c:\users\user\desktop\dsbyliteexample-master\qftpseriesdown\qftp.h(145) : see declaration of 'QFtp::commandFinished'
1>        c:\users\user\desktop\dsbyliteexample-master\qftpseriesdown\qftp.h(53) : see declaration of 'QFtp'
1>.\qftp.cpp(2297) : error C2248: 'QFtp::done' : cannot access protected member declared in class 'QFtp'
1>        c:\users\user\desktop\dsbyliteexample-master\qftpseriesdown\qftp.h(146) : see declaration of 'QFtp::done'
1>        c:\users\user\desktop\dsbyliteexample-master\qftpseriesdown\qftp.h(53) : see declaration of 'QFtp'
1>.\qftp.cpp(2369) : error C2248: 'QFtp::commandFinished' : cannot access protected member declared in class 'QFtp'
1>        c:\users\user\desktop\dsbyliteexample-master\qftpseriesdown\qftp.h(145) : see declaration of 'QFtp::commandFinished'
1>        c:\users\user\desktop\dsbyliteexample-master\qftpseriesdown\qftp.h(53) : see declaration of 'QFtp'
1>.\qftp.cpp(2374) : error C2248: 'QFtp::done' : cannot access protected member declared in class 'QFtp'
1>        c:\users\user\desktop\dsbyliteexample-master\qftpseriesdown\qftp.h(146) : see declaration of 'QFtp::done'
1>        c:\users\user\desktop\dsbyliteexample-master\qftpseriesdown\qftp.h(53) : see declaration of 'QFtp'
1>.\qftp.cpp(2384) : error C2248: 'QFtp::stateChanged' : cannot access protected member declared in class 'QFtp'
1>        c:\users\user\desktop\dsbyliteexample-master\qftpseriesdown\qftp.h(138) : see declaration of 'QFtp::stateChanged'
1>        c:\users\user\desktop\dsbyliteexample-master\qftpseriesdown\qftp.h(53) : see declaration of 'QFtp'
1>.\qftp.cpp(2397) : error C2248: 'QFtp::rawCommandReply' : cannot access protected member declared in class 'QFtp'
1>        c:\users\user\desktop\dsbyliteexample-master\qftpseriesdown\qftp.h(142) : see declaration of 'QFtp::rawCommandReply'
1>        c:\users\user\desktop\dsbyliteexample-master\qftpseriesdown\qftp.h(53) : see declaration of 'QFtp'
1>mainwindow.cpp
1>.\mainwindow.cpp(14) : error C2065: 'nullptr' : undeclared identifier
1>.\mainwindow.cpp(15) : error C2248: 'QFtp::rawCommandReply' : cannot access protected member declared in class 'QFtp'
1>        c:\users\user\desktop\dsbyliteexample-master\qftpseriesdown\qftp.h(142) : see declaration of 'QFtp::rawCommandReply'
1>        c:\users\user\desktop\dsbyliteexample-master\qftpseriesdown\qftp.h(53) : see declaration of 'QFtp'
1>.\mainwindow.cpp(15) : error C2059: syntax error : '['
1>.\mainwindow.cpp(15) : error C2143: syntax error : missing ')' before '{'
1>.\mainwindow.cpp(15) : error C2143: syntax error : missing ';' before '{'
1>.\mainwindow.cpp(16) : error C2065: 'str' : undeclared identifier
1>.\mainwindow.cpp(17) : error C2059: syntax error : ')'
1>.\mainwindow.cpp(18) : error C2248: 'QFtp::readyRead' : cannot access protected member declared in class 'QFtp'
1>        c:\users\user\desktop\dsbyliteexample-master\qftpseriesdown\qftp.h(140) : see declaration of 'QFtp::readyRead'
1>        c:\users\user\desktop\dsbyliteexample-master\qftpseriesdown\qftp.h(53) : see declaration of 'QFtp'
1>.\mainwindow.cpp(18) : error C2059: syntax error : '['
1>.\mainwindow.cpp(18) : error C2143: syntax error : missing ')' before '{'
1>.\mainwindow.cpp(18) : error C2143: syntax error : missing ';' before '{'
1>.\mainwindow.cpp(20) : error C2059: syntax error : ')'
1>main.cpp
1>ftpcutdown.cpp
1>.\ftpcutdown.cpp(36) : error C2248: 'QNetworkReply::finished' : cannot access protected member declared in class 'QNetworkReply'
1>        c:\qt\4.8.4\include\qtnetwork\../../src/network/access/qnetworkreply.h(149) : see declaration of 'QNetworkReply::finished'
1>        c:\qt\4.8.4\include\qtnetwork\../../src/network/access/qnetworkreply.h(65) : see declaration of 'QNetworkReply'
1>.\ftpcutdown.cpp(36) : error C2059: syntax error : '['
1>.\ftpcutdown.cpp(36) : error C2143: syntax error : missing ')' before '{'
1>.\ftpcutdown.cpp(36) : error C2143: syntax error : missing ';' before '{'
1>.\ftpcutdown.cpp(39) : error C2059: syntax error : ')'
1>Generating Code...
离线渡世白玉

只看该作者 1楼 发表于: 2014-01-03
C2059和C2143错误是因为我用的C++11的labdma表达式,Vs2008通不过的,至少需要VS2012/gcc4.7,另外我是基于Qt5的,用的也是Qt5新加的信号槽语法,错误很正常。ftpcutdown.cpp这个文件是测试Qnetworkmanager下载的,这个用的是http的原理,断点失败的。
qftp.cpp这个文件我是从别处找来的,也是基于qt5的、、Qt4好像本身就有个qftp类,我是直接上手的Qt5、、这个文件我用4.8.5测试,编译是的确不过的、、、
Qt5.x + gcc4.7+/VS2012+ 才会编译没错误、、、
Qt4重构QFtp的话,这个我也没用过qt4的,好像出不了什么力、、、
离线渡世白玉

只看该作者 2楼 发表于: 2014-01-03
https://qt.gitorious.org/qt/qtftp/source/a2a7f28c0facd7ca946cea54e98c6019fcdb16ae:

QFTP项目的地址、、我直接编译测试了、、不支持qt4、、、
快速回复
限100 字节
 
上一个 下一个