免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2457 | 回复: 0
打印 上一主题 下一主题

关于autoconf和qt4.7.1的.ui文件编译的问题,请高手帮忙?非常感谢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-23 11:15 |只看该作者 |倒序浏览
我想使用autoconf和automake对一个Qt4.7.1的工程进行打包编译;通过采用autotroll.mk(网上针对qt开发的编译脚本);通过Makefile.am动态生成Makefile;达到编译的目的;
但项目中使用的.ui文件;需要生成.h文件;如果我采用手动生成ui_*.h文件防护;整个项目编译正常通过;当如果我把ui_*.h删除;想通过ui文件动态生成ui_*.h文件之后;在进行编译;系统会提示ui_mainwindow.h文件not found ;我对比qmake生成的Makefile 和通过configure 生成的Makefile不一致;我想问一下那位高手曾经作过该类的问题;请帮忙解答一下;谢谢
我采用autotroll.mk
# See autotroll.m4
#include $(top_scrdir)/include.mk

SUFFIXES = .moc.cpp .moc.cc .moc.cxx .moc.C .h .hh \
           .ui .ui.h .ui.hh \
           .qrc .qrc.cpp .qrc.cc .qrc.cxx .qrc.C

# --- #
# MOC #
# --- #
.hh.moc.cpp:
        echo ".hh.moc.cpp MOC=$MOC"
        $(MOC) $(MOC_CPPFLAGS) $< -o $@
.h.moc.cpp:
        echo ".h.moc.cpp"
        $(MOC) $(MOC_CPPFLAGS) $< -o $@

.hh.moc.cc:
        $(MOC) $(MOC_CPPFLAGS) $< -o $@
.h.moc.cc:
        $(MOC) $(MOC_CPPFLAGS) $< -o $@

.hh.moc.cxx:
        echo ".hh.moc.cxx"
        $(MOC) $(MOC_CPPFLAGS) $< -o $@
.h.moc.cxx:
        echo ".h.moc.cxx"
        $(MOC) $(MOC_CPPFLAGS) $< -o $@

.hh.moc.C:
        $(MOC) $(MOC_CPPFLAGS) $< -o $@
.h.moc.C:
        $(MOC) $(MOC_CPPFLAGS) $< -o $@

# --- #
# UIC #-----------该部分应该针对.ui文件生成.h 规则
# --- #

.ui.ui.hh:
        echo ".ui.ui.hh"
        $(UIC) $< -o $@

.ui.ui.h:
        echo ".ui.ui.h"
        $(UIC) $< -o $@

# --- #
# RCC #
# --- #

.qrc.qrc.cpp:
        $(RCC) -name `echo "$<" | sed 's/\.qrc$$//'` $< -o $@

.qrc.qrc.cc:
        $(RCC) -name `echo "$<" | sed 's/\.qrc$$//'` $< -o $@

.qrc.qrc.cxx:
        $(RCC) -name `echo "$<" | sed 's/\.qrc$$//'` $< -o $@

.qrc.qrc.C:
        $(RCC) -name `echo "$<" | sed 's/\.qrc$$//'` $< -o $@

编写的include.mk
QT_LIB=$(top_srcdir)/src/qtlib
OTHER_LIB=$(top_srcdir)/src/3rdparty/

QTDIR=/home/test/project/qt_embedded_4.7.1
MOC=/usr/local/Trolltech/QtEmbedded-4.7.1-mips/bin/moc
UIC=/usr/local/Trolltech/QtEnbedded-4.7.1-mips/bin/uic



编写的Makefile.am

# Process this file with automake to produce Makefile.in

include $(top_srcdir)/autotroll.mk
include $(top_srcdir)/include.mk



bin_PROGRAMS=test

BUILT_SOURCES = $(test_UI) \
                $(test_MOC)

test_UI =  \
                mainwindow.ui \
                messagedialog.ui

test_MOC= \
                ui_mainwindow.h ui_messagedialog.h \
                mainwindow.moc.cpp \
                messagedialog.moc.cpp

test_SOURCES =  \
                    $(test_UI) \
                $(test_MOC)  \
                mainwindow.cpp \
                messagedialog.cpp

test_CPPFLAGS  =  $(QT_CPPFLAGS) $(GUI_CPPFLAGS) $(VERBOSE_CPPFLAGS) \
                        -I./

test_LDFLAGS = $(QT_LDFLAGS)


test_LDADD = \
        $(SUBLIBS) -L$(OTHER_LIB) -ldg20\
         -L$(QT_LIB) -lQtGui  -lQtNetwork -lQtCore -lpthread
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP