QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1440|回复: 9

makefile的问题

[复制链接]
发表于 2003-9-3 14:32:29 | 显示全部楼层 |阅读模式
在看makefile,经常看到
$(CCX)不知道是什末意思
请问哪里又比较详细的关于写makefile的说明文档呀
发表于 2003-9-4 18:20:45 | 显示全部楼层
就是CCX变量的值
比如
CCX=aaaa
echo $(CCX)
那么控制台就会显示aaaa
回复

使用道具 举报

 楼主| 发表于 2003-9-4 21:38:44 | 显示全部楼层
还有一个编译的问题
我在一个文章中看到这样的代码,但是不会写他的make文件。
/* chinese.h */

#include <qapplication.h>
#include <qwidget.h>
#include <qlabel.h>
#include <qlineedit.h>

class Chinese: public QWidget
{
        Q_OBJECT
        public:
                Chinese();
        private:
                QLabel *label;
                QLineEdit *input;
        private slots:
                void display();

};



//chinese.cpp

#include "chinese.moc"
#include <iostream.h>

Chinese::Chinese()
{
        resize(200,100);

        label=new QLabel( "Input Line:", this);
        label-&gt;setGeometry(10,10,90,30);

        input=new QLineEdit(this);
        input-&gt;setGeometry(10, 40, 180, 30);
        input-&gt;setFocus();
        connect(input, SIGNAL(returnPressed()), this, SLOT(display()));

}
void Chinese::display()
{
        QCString string;
        string=input-&gt;text();
        cout&lt;&lt;string&lt;&lt;endl;
}


//main.cpp
/* main.cpp */

#include &lt;qapplication.h&gt;
#include "chinese.h"

main (int argc, char **argv)
{
        QApplication a(argc, argv);
        Chinese w;
        a.setMainWidget (&amp;w);
        w.show();
        return a.exec();
}

文章中有一个makefile文件,但是运行起来有错悟,我用的 redhat8。0
那位高人能帮我写个简单的makefile,让这几个文件编译通过吗?就是有Q_OBJECT
这个东东编译可能要特别一些,那位高人可以讲讲这方面个东西吗?
回复

使用道具 举报

发表于 2003-9-5 09:24:39 | 显示全部楼层
我不懂qt,你用kdevelop建一个工程肯定能编译过去。
回复

使用道具 举报

 楼主| 发表于 2003-9-5 15:54:25 | 显示全部楼层
不行
回复

使用道具 举报

发表于 2003-9-10 16:24:50 | 显示全部楼层
i don't know, but i want to know.
回复

使用道具 举报

发表于 2003-9-11 10:53:09 | 显示全部楼层
我写了个Makefile,你看看能不能用,我对QT不熟,但你说的Q_OBJECT
是用moc,这个是qt带的一个好像是预编译工具,
编译时用make all, 应该就可以了
注意QTINCLUDE是你QT包的路径,我这里是瞎写的,你要改改   

SOURCES = main.cpp chinese.cpp chinese.h
OBJECTS = chinese.o main.o
MOC     = moc
MOCFILE = chinese.moc
QTINCLUDE       = /opt/QtPath/include/

chinese.moc:
        $(MOC) chinese.h &gt; $(MOCFILE)
        
%.o:    %.cpp chinese.moc
        $(CC) -c $(CFLAGS) $&lt; -o $@ -I$(QTINCLUDE)

all: main

main:   $(SOURCES) $(OBJECTS) $(MOCFILE)
        $CC $&lt; -o $@

clean:
        rm -rf *.o main $(MOCFILE)
回复

使用道具 举报

发表于 2003-11-1 17:11:50 | 显示全部楼层
我在编写一个makefile的时候,也遇到了和你一样的错误信息
main : main.o mytool1.o mytool2.o
gcc -o $@  $^
...................................
.........................
改写成
main : main.o mytool1.o mytool2.o
        gcc -o $@  $^
...................................
.........................
就没有这样的问题了,我在些第二行的时候加入了一个tab控制符
我想你也是遇到了控制符的问题
回复

使用道具 举报

发表于 2003-11-11 23:43:09 | 显示全部楼层
只想编QT程序,不用手写Makefile,可以用QT自带的qmake工具。看看帮助就行了,先写一个chinese.pro ,再用qmake -o Makefile chinese.pro,之后就出来一个Makefile,再make就行了。写chinese.pro并不难。
回复

使用道具 举报

发表于 2003-11-17 20:13:40 | 显示全部楼层
用kdevelop建立一个单文档工程,把文件add进去,编译就可以了。
qmake,tmake都行,不过要自己写工程文件稍微麻烦点,一般我不用!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-9 10:35 , Processed in 0.075446 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表