• 8164阅读
  • 10回复

刚看到有人说"有自定义的signal 和slot 的类必须moc",问一下怎么moc啊,是一个命令吗? [复制链接]

上一主题 下一主题
离线yanjinbo345
 
只看楼主 倒序阅读 楼主  发表于: 2010-05-22
我最近就要编译一个有自定义的signal 和slot 的开源程序,但是有错,不能生成相应.moc文件 ,哪个懂的指点一下啊 !
出错信息:
Running build steps for project qterm...
Configuration unchanged, skipping QMake step.
Starting: /usr/bin/make -w
make:进入目录'/home/yjb/qterm-0.5.10/qterm-0.5.10/src'
make:离开目录“/home/yjb/qterm-0.5.10/qterm-0.5.10/src”
make: *** 没有规则可以创建“obj/qtermframe.o”需要的目标“moc/qtermframe.moc”。 停止。
Exited with code 2.
Error while building project qterm
When executing build step 'Make'
[ 此帖被yanjinbo345在2010-05-22 15:30重新编辑 ]
离线paranoid
只看该作者 1楼 发表于: 2010-05-22
qt内部使用的命令,一般不用去关心他的存在,你只要弄好你的程序,qmake ,make就好了
离线yanjinbo345
只看该作者 2楼 发表于: 2010-05-22
引用第1楼paranoid于2010-05-22 15:45发表的  :
qt内部使用的命令,一般不用去关心他的存在,你只要弄好你的程序,qmake ,make就好了

我这个程序报错是什么意思,是要我用命令生成moc文件吗?
离线paranoid
只看该作者 3楼 发表于: 2010-05-22
不需要自己去生成moc文件,make时会根据需要自动调用别的工具生成moc文件。
你可以make clean你的工程,或者手动删除所有moc开头的文件,.o文件,makefile文件,重新编译试试看
离线yanjinbo345
只看该作者 4楼 发表于: 2010-05-22
引用第3楼paranoid于2010-05-22 16:19发表的  :
不需要自己去生成moc文件,make时会根据需要自动调用别的工具生成moc文件。
你可以make clean你的工程,或者手动删除所有moc开头的文件,.o文件,makefile文件,重新编译试试看

我按照你的方法clean了,重新qmake和make,但还是出现上面那个错误" *.o文件没有规则生成 *.moc文件 ".
我编译的是linux下访问bbs的开源程序qterm0.5.10版本,不知道你用过没!
离线dbzhang800

只看该作者 5楼 发表于: 2010-05-22
引用第4楼yanjinbo345于2010-05-22 17:27发表的  :
我按照你的方法clean了,重新qmake和make,但还是出现上面那个错误" *.o文件没有规则生成 *.moc文件 ".
我编译的是linux下访问bbs的开源程序qterm0.5.10版本,不知道你用过没!


1.  对源码包,都应该是先认真阅读它附带的编译说明,

2.  据我所知,qterm 用的cmake 而不是qmake

3. 提问时,最好是介绍你做了什么,出现了什么问题
离线yanjinbo345
只看该作者 6楼 发表于: 2010-05-22
引用第5楼dbzhang800于2010-05-22 20:00发表的  :
1.  对源码包,都应该是先认真阅读它附带的编译说明,
2.  据我所知,qterm 用的cmake 而不是qmake
.......

恩,编译说明里是说用cmake,但我是在qt creator里面编译,它自带的是qmake啊,用不了cmake啊.
我是想把qterm编译通过后,然后修改一下,删除一些功能.
离线dbzhang800

只看该作者 7楼 发表于: 2010-05-22
引用第6楼yanjinbo345于2010-05-22 20:21发表的  :
恩,编译说明里是说用cmake,但我是在qt creator里面编译,它自带的是qmake啊,用不了cmake啊.
我是想把qterm编译通过后,然后修改一下,删除一些功能.


1. 你想简化它,然后作为自己的毕业设计,这个我不评论

2. 既然学Qt和C++,一些基本的概念应该要有,
比如 Qt 和 C++ 的关系(为什么要有moc?)
比如 QtCreator 起什么作用(不用它如何用qmake或cmake编译程序?)  
比如 qmake 或 cmake 是做什么用的 (如果真没有这两个东西的话 ,如何通过g++和moc等生成编译简单的Qt程序?)


3. 还真不像你所说的:“用不了cmake”。QtCreator 支持 qmake 和 cmake !!(具体细节就不说了)
离线paranoid
只看该作者 8楼 发表于: 2010-05-23
cmake本身不会编译,他只是提供了统一的工程文件
设置好你的qtcreator的编译环境,用qt creator 打开qterm的根CMakeLists.txt,build。
离线yanjinbo345
只看该作者 9楼 发表于: 2010-05-23
引用第8楼paranoid于2010-05-23 00:09发表的  :
cmake本身不会编译,他只是提供了统一的工程文件
设置好你的qtcreator的编译环境,用qt creator 打开qterm的根CMakeLists.txt,build。

恩,按照你的方法果然编译成功了,非常感谢!!!
离线yanjinbo345
只看该作者 10楼 发表于: 2010-05-23
引用第7楼dbzhang800于2010-05-22 23:39发表的  :
1. 你想简化它,然后作为自己的毕业设计,这个我不评论
2. 既然学Qt和C++,一些基本的概念应该要有,
.......

非常感谢你给我的建議,我有很多坏习惯,一時改不了,现在时间紧,就想先找个现成的保底!
快速回复
限100 字节
 
上一个 下一个