• 8270阅读
  • 7回复

【提问】这个编译错误问题在哪里?请求帮助 [复制链接]

上一主题 下一主题
离线looneyxp
 

只看楼主 倒序阅读 楼主  发表于: 2005-11-25
#include <QApplication.h>
#include <QPushButton.h>

int main(int argc, char *argv[])
{
  QApplication app(argc, argv);

  QPushButton hello("Hello world");
  hello.resize(100, 30);

  hello.show();
  return app.exec();
}
error C2664: '__thiscall QPushButton::QPushButton(class QWidget *,const char *)' : cannot convert parameter 1 from 'char [12]' to 'class QWidget *'
    Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Error executing cl.exe.

xxx.obj - 1 error(s), 0 warning(s)
离线looneyxp

只看该作者 1楼 发表于: 2005-11-25
我已经设置好了系统环境变量了,我的qt环境是在sourceforge下载的一个setup-qt-win-free-msvc-3.3.4-3,然后设置include ,lib就可以了啊
离线XChinux

只看该作者 2楼 发表于: 2005-11-25
error C2664: '__thiscall QPushButton::QPushButton(class QWidget *,const char *)' : cannot convert parameter 1 from 'char [12]' to 'class QWidget *'


这已经很明白地告诉你了,参数错误,
QPushButton的构造函数中,没有你使用的那种匹配。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线looneyxp

只看该作者 3楼 发表于: 2005-11-26
是的,哪个例子有错,是针对4.0.1的,在3.3.4下不可以编译通过
但是今天编译说cannot find -lqtmaind,这个是为什么?
我都是按照别人的说明来的啊
离线looneyxp

只看该作者 4楼 发表于: 2005-11-26
感觉qt4.0.1和qt3.3.4还是相差满大的,以前有人批评说qt对C++新特性比较谨慎,但是看了下,好象最近支持很好的,qt4好象是模板化了它的类库!!不错
离线XChinux

只看该作者 5楼 发表于: 2005-11-26
can not find -lqtmaind
是说找不到qtmaind这个库,你到QT安装目录下的 lib目录下看看,有没有qtmaind这样的文件(肯定是没有了),
这说明,你现在是以Debug方式编译,而不是Release,所以要连接Qt Debug Library,而默认的是没有安装这个的,所以,你要自己来Build 这个Qt Debug Library,来生成qtxxxd 这样的库文件。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线XChinux

只看该作者 6楼 发表于: 2005-11-26
另:
#include <QApplication.h>
#include <QPushButton.h>

这种写法是不正确的。如果用.h,就要全用小写,如果不用.h就要开头大写
即:qapplication.h或者QApplication

或许你是在Windows 下,还能正确进行编译,但一旦移植到大小写敏感的Linux/Unix下,它就会出问题。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线looneyxp

只看该作者 7楼 发表于: 2005-11-27
谢谢斑竹拉,多向你学习
快速回复
限100 字节
 
上一个 下一个