• 8061阅读
  • 2回复

[提问]qt2上实现串口通信编译出错(qextserialport类) [复制链接]

上一主题 下一主题
离线yehlg
 
只看楼主 倒序阅读 楼主  发表于: 2011-05-12
我在arm9上做个短信收发的设计,需要用到串口通信。我用的是网上提供的[color=initial;][color=initial;]qextserialport类,这个方法在qt4
[color=initial;][color=initial;]上是可以编译通过的。linux上搭建的qte是2.3.10的版本,用arm-linux-g++(版本2.9,3.4的都试过了)交叉编译出现好多错误,是不是qte的版本有问题,arm9开发箱上用的是linux2.4的内核,这个qte是光盘自带的版本。这个错误很头疼啊,做了半个月了,最后出现这么大问题,看来是做不出来了,下面这是错误:(附件是我用的到[color=initial;][color=initial;]qextserialport类[color=initial;][color=initial;])
[color=initial;][color=initial;]Makefile:179: 警告:覆盖关于目标“moc_widget.cpp”的命令
Makefile:176: 警告:忽略关于目标“moc_widget.cpp”的旧命令
/home/yehualang/2410sQt/target/qt-2.3.10/bin/uic widget.ui -o ./widget.h
arm-linux-g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -DNO_DEBUG -I/home/yehualang/2410sQt/target/qt-2.3.10/include -o main.o main.cpp
arm-linux-g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -DNO_DEBUG -I/home/yehualang/2410sQt/target/qt-2.3.10/include -o posix_qextserialport.o posix_qextserialport.cpp
In file included from posix_qextserialport.h:11,
                 from posix_qextserialport.cpp:16:
qextserialbase.h:7: qmutex.h: ?????????
In file included from posix_qextserialport.h:11,
                 from posix_qextserialport.cpp:16:
qextserialbase.h:159: syntax error before `*'
qextserialbase.h:165: ANSI C++ forbids declaration `qint64' with no type
qextserialbase.h:165: `qint64' declared as a `virtual' field
qextserialbase.h:165: parse error before `('
qextserialbase.h:166: ANSI C++ forbids declaration `qint64' with no type
qextserialbase.h:166: `qint64' declared as a `virtual' field
qextserialbase.h:166: declaration of `int QextSerialBase::qint64'
qextserialbase.h:165: conflicts with previous declaration `int QextSerialBase::qint64'
qextserialbase.h:166: parse error before `('
qextserialbase.h:220: invalid use of undefined type `class QextSerialBase'
qextserialbase.h:148: forward declaration of `class QextSerialBase'
qextserialbase.h:220: parse error before `)'
qextserialbase.h:225: ANSI C++ forbids declaration `qint64' with no type
qextserialbase.h:225: `qint64' declared as a `virtual' field
qextserialbase.h:225: declaration of `int QextSerialBase::qint64'
qextserialbase.h:165: conflicts with previous declaration `int QextSerialBase::qint64'
qextserialbase.h:225: parse error before `('
qextserialbase.h:226: ANSI C++ forbids declaration `qint64' with no type
qextserialbase.h:226: `qint64' declared as a `virtual' field
qextserialbase.h:226: declaration of `int QextSerialBase::qint64'
qextserialbase.h:165: conflicts with previous declaration `int QextSerialBase::qint64'
qextserialbase.h:226: parse error before `('
qextserialbase.h:230: ANSI C++ forbids declaration `qint64' with no type
qextserialbase.h:230: `qint64' declared as a `virtual' field
qextserialbase.h:230: declaration of `int QextSerialBase::qint64'
qextserialbase.h:165: conflicts with previous declaration `int QextSerialBase::qint64'
qextserialbase.h:230: parse error before `('
qextserialbase.h:166: duplicate member `QextSerialBase::qint64'
qextserialbase.h:225: duplicate member `QextSerialBase::qint64'
qextserialbase.h:226: duplicate member `QextSerialBase::qint64'
qextserialbase.h:230: duplicate member `QextSerialBase::qint64'
qextserialbase.h:230: duplicate member `QextSerialBase::qint64'
In file included from posix_qextserialport.cpp:16:
posix_qextserialport.h:27: ANSI C++ forbids declaration `qint64' with no type
posix_qextserialport.h:27: `qint64' declared as a `virtual' field
posix_qextserialport.h:27: parse error before `('
posix_qextserialport.h:28: ANSI C++ forbids declaration `qint64' with no type
posix_qextserialport.h:28: `qint64' declared as a `virtual' field
posix_qextserialport.h:28: declaration of `int Posix_QextSerialPort::qint64'
posix_qextserialport.h:27: conflicts with previous declaration `int Posix_QextSerialPort::qint64'
posix_qextserialport.h:28: parse error before `('
posix_qextserialport.h:46: invalid use of undefined type `class Posix_QextSerialPort'
posix_qextserialport.h:13: forward declaration of `class Posix_QextSerialPort'
posix_qextserialport.h:46: parse error before `)'
posix_qextserialport.h:50: ANSI C++ forbids declaration `qint64' with no type
posix_qextserialport.h:50: `qint64' declared as a `virtual' field
posix_qextserialport.h:50: declaration of `int Posix_QextSerialPort::qint64'
posix_qextserialport.h:27: conflicts with previous declaration `int Posix_QextSerialPort::qint64'
posix_qextserialport.h:50: parse error before `('
posix_qextserialport.h:51: ANSI C++ forbids declaration `qint64' with no type
posix_qextserialport.h:51: `qint64' declared as a `virtual' field
posix_qextserialport.h:51: declaration of `int Posix_QextSerialPort::qint64'
posix_qextserialport.h:27: conflicts with previous declaration `int Posix_QextSerialPort::qint64'
posix_qextserialport.h:51: parse error before `('
posix_qextserialport.h:28: duplicate member `Posix_QextSerialPort::qint64'
posix_qextserialport.h:50: duplicate member `Posix_QextSerialPort::qint64'
posix_qextserialport.h:51: duplicate member `Posix_QextSerialPort::qint64'
posix_qextserialport.cpp: In method `Posix_QextSerialPort::Posix_QextSerialPort(const Posix_QextSerialPort &)':
posix_qextserialport.cpp:54: no matching function for call to `Posix_QextSerialPort::openMode () const'
posix_qextserialport.cpp:54: implicit declaration of function `int setOpenMode(...)'
posix_qextserialport.cpp: In method `class Posix_QextSerialPort & Posix_QextSerialPort::operator =(const Posix_QextSerialPort &)':
posix_qextserialport.cpp:128: no matching function for call to `Posix_QextSerialPort::openMode () const'
posix_qextserialport.cpp: In method `void Posix_QextSerialPort::setBaudRate(BaudRateType)':
posix_qextserialport.cpp:204: `mutex' undeclared (first use this function)
posix_qextserialport.cpp:204: (Each undeclared identifier is reported only once
posix_qextserialport.cpp:204: for each function it appears in.)
posix_qextserialport.cpp: At top level:
posix_qextserialport.cpp:828: `class Posix_QextSerialPort' has no member named `OpenMode'
posix_qextserialport.cpp:828: parse error before `)'
posix_qextserialport.cpp: In method `bool Posix_QextSerialPort::open(...)':
posix_qextserialport.cpp:831: `NotOpen' is not a member of type `QIODevice'
posix_qextserialport.cpp:835: no matching function for call to `QFile::setFileName (QString &)'
posix_qextserialport.cpp:837: `ReadWrite' is not a member of type `QIODevice'
posix_qextserialport.cpp:837: `Unbuffered' is not a member of type `QIODevice'
posix_qextserialport.cpp:840: no matching function for call to `QIODevice::open ({unknown type})'
/home/yehualang/2410sQt/target/qt-2.3.10/include/qiodevice.h:115: candidates are: bool QIODevice::open(int)
posix_qextserialport.cpp:861: `struct PortSettings' has no member named `Timeout_Sec'
posix_qextserialport.cpp:864: no matching function for call to `QFile::error ()'
posix_qextserialport.cpp: At top level:
posix_qextserialport.cpp:905: syntax error before `::'
posix_qextserialport.cpp:920: syntax error before `::'
posix_qextserialport.cpp:926: parse error before `do'
posix_qextserialport.cpp:926: parse error before `for'
posix_qextserialport.cpp:926: parse error before `;'
posix_qextserialport.cpp:927: parse error before `->'
posix_qextserialport.cpp:932: ANSI C++ forbids declaration `Posix_Timeout' with no type
posix_qextserialport.cpp:932: `Posix_Copy_Timeout' was not declared in this scope
posix_qextserialport.cpp:933: `Posix_File' was not declared in this scope
posix_qextserialport.cpp:934: parse error before `if'
posix_qextserialport.cpp:936: syntax error before `->'
posix_qextserialport.cpp:941: syntax error before `->'
posix_qextserialport.cpp:944: ANSI C++ forbids declaration `lastErr' with no type
posix_qextserialport.cpp:945: syntax error before `->'
posix_qextserialport.cpp:948: syntax error before `->'
posix_qextserialport.cpp:1097: syntax error before `::'
posix_qextserialport.cpp:1101: ANSI C++ forbids declaration `retVal' with no type
posix_qextserialport.cpp:1101: redefinition of `int retVal'
posix_qextserialport.cpp:1100: `int retVal' previously defined here
posix_qextserialport.cpp:1101: `Posix_File' was not declared in this scope
posix_qextserialport.cpp:1101: `data' was not declared in this scope
posix_qextserialport.cpp:1101: `maxSize' was not declared in this scope
posix_qextserialport.cpp:1102: parse error before `if'
posix_qextserialport.cpp:1104: syntax error before `->'
posix_qextserialport.cpp:1118: syntax error before `::'
posix_qextserialport.cpp:1121: redefinition of `int retVal'
posix_qextserialport.cpp:1101: `int retVal' previously defined here
posix_qextserialport.cpp:1122: ANSI C++ forbids declaration `retVal' with no type
posix_qextserialport.cpp:1122: redefinition of `int retVal'
posix_qextserialport.cpp:1121: `int retVal' previously defined here
posix_qextserialport.cpp:1122: `Posix_File' was not declared in this scope
posix_qextserialport.cpp:1122: `data' was not declared in this scope
posix_qextserialport.cpp:1122: `maxSize' was not declared in this scope
posix_qextserialport.cpp:1123: parse error before `if'
posix_qextserialport.cpp:1125: syntax error before `->'
make: *** [posix_qextserialport.o] 错误 1
附件: qextserialport-1.2win-alpha.zip (271 K) 下载次数:9
离线dbzhang800

只看该作者 1楼 发表于: 2011-05-12
先去认真扫一眼这个页面

http://qextserialport.sourceforge.net/

看看各个版本的适用范围再说。
离线dbzhang800

只看该作者 2楼 发表于: 2011-05-12
有了点有趣的变化。Brandon Fosdick  对页面刚刚做了点调整:

sf中的老页面已经被设置了重定向,会自动转到新页面 google code 中。

原来网页的内容放到了:http://code.google.com/p/qextserialport/downloads/detail?name=qesp_sf_htdocs.zip&can=2&q=

(如果重定向太快,你看不到原来的内容,就下载这个下来,只看首页就行了)
快速回复
限100 字节
 
上一个 下一个