• 4737阅读
  • 1回复

用qmake生成project的问题 [复制链接]

上一主题 下一主题
 
只看楼主 倒序阅读 楼主  发表于: 2009-07-02
大家好,我有一个qmake使用的问题

我在通过一本教材学习qt,教材附带源程序
我在windows下通过visual studio编译源程序做练习

通常,我拿来源程序,通过运行以下两句生成vc的project文件
  • qmake -project -t vcapp
  • qmake

然后再在vc环境里继续工作,一直工作的挺好

但是下面这个小例子编译后,运行结果不是期待的样子
  1. #include <QtCore>
  2. #include <iostream>
  3. #include <stdio.h>
  4. using namespace std;
  5. int main(int argc, char* argv[])
  6. {
  7. if (argc < 2) {
  8. cout << "Usage: " << argv[0] << " infile [outfile]" << endl;
  9. return 1;
  10. }
  11. QFile in(argv[1]);
  12. if(!in.open(QIODevice::ReadOnly|QIODevice::Text)) {
  13. cerr << "File " << argv[1] << " does not exist" << endl;
  14. }
  15. QFile out;
  16. if (argc >= 3) {
  17. out.setFileName(argv[2]);
  18. if (out.exists()) {
  19. cerr << "File" << argv[2] << " already exists" << endl;
  20. return 1;
  21. }
  22. if(!out.open(QIODevice::WriteOnly|QIODevice::Text)) {
  23. cerr << "Failed to open file " << argv[2] <<
  24. " for writing" << endl;
  25. return 1;
  26. }
  27. }
  28. else
  29. if(!out.open(stdout, QIODevice::WriteOnly|QIODevice::Text)) {
  30. cerr << "Failed to open standard output for writing" << endl;
  31. return 1;
  32. }
  33. while (!in.atEnd()) {
  34. QByteArray line = in.readLine();
  35. if (!line.trimmed().isEmpty() &&
  36. !line.trimmed().startsWith('#'))
  37. out.write(line);
  38. }
  39. in.close();
  40. out.close();
  41. return 0;
  42. }

程序可以运行,但是不对任何参数的组合做任何响应。
程序本身没有问题了,因为我用手动添加qt支持的方法 添加$(QTDIR)/include qtmaind.lib QtGuid4.lib QtCored4.lib $(QTDIR)/lib
再编译程序,结果就和想要的一样了

我的问题是,qmake应该强大到可以处理这个问题
那么qmake针对这个问题该怎么用呢? 谢谢







只看该作者 1楼 发表于: 2009-07-07
自己说说吧
现在用visual studio add-in了
moc rcc还有uic都不用自己打理了
所以pro文件啊,qmake啊都没有存在的必要了(针对于使用visual studio add-in的前提)

建议在windows下工作,而且有visual studio的同学们使用visual studio add-in。
快速回复
限100 字节
 
上一个 下一个