qmake不行,所以才自己改写的Makefile,至于改写obj的目录,具体怎么做呵?
8gprs call_impl.h gprs_impl.h Makefile
8gprs.pro call.ui gprs.ui pic serial.cpp
call_impl.cpp gprs_impl.cpp main.cpp serial.h
上面是我的所有项目源文件
而我的Makefile 内容是自己改编写的,如下:
#############################################################################
# Automatically generated from /root/test/qtopia/hello/Makefile.in
# Build options from
#############################################################################
default: all #
CONTROL =
# Compiling
INTERFACE_DECL_PATH = .
SYSCONF_CXX = g++
SYSCONF_CC = gcc
DASHCROSS =
# Compiling with support libraries
SYSCONF_CXXFLAGS_X11 =
SYSCONF_CXXFLAGS_QT = -I$(QTDIR)/include
SYSCONF_CXXFLAGS_QTOPIA = -I$(QPEDIR)/include
SYSCONF_CFLAGS_QTOPIA = -I$(QPEDIR)/include
SYSCONF_CXXFLAGS_OPENGL = -I/usr/X11R6/include
# Compiling YACC output
SYSCONF_CXXFLAGS_YACC = -Wno-unused -Wno-parentheses
# Linking with support libraries
SYSCONF_RPATH_X11 =
SYSCONF_RPATH_QT = -Wl,-rpath,$(QTDIR)/lib
SYSCONF_RPATH_QTOPIA = -Wl,-rpath,$(QPEDIR)/lib
SYSCONF_RPATH_OPENGL = -Wl,-rpath,/usr/X11R6/lib
# Linking with support libraries
# X11
SYSCONF_LFLAGS_X11 =
SYSCONF_LIBS_X11 =
# Qt, Qt+OpenGL
SYSCONF_LFLAGS_QT = -L$(QTDIR)/lib
SYSCONF_LFLAGS_QTOPIA = -L$(QPEDIR)/lib
SYSCONF_LIBS_QT = -lqte$(QT_THREAD_SUFFIX)
SYSCONF_LIBS_QT_OPENGL =
SYSCONF_LIBS_QTOPIA = -lqtopia
# OpenGL
SYSCONF_LFLAGS_OPENGL = -L/usr/X11R6/lib
SYSCONF_LIBS_OPENGL =
# Yacc
SYSCONF_LIBS_YACC =
# Linking applications
SYSCONF_LINK = gcc
SYSCONF_LFLAGS =
SYSCONF_LIBS =
# Link flags for shared objects
SYSCONF_LFLAGS_SHOBJ = -shared
# Flags for threading
SYSCONF_CFLAGS_THREAD = -D_REENTRANT
SYSCONF_CXXFLAGS_THREAD = -D_REENTRANT
SYSCONF_LFLAGS_THREAD =
SYSCONF_LIBS_THREAD = -lpthread
# Meta-object compiler
SYSCONF_MOC = $(QTDIR)/bin/moc
# UI compiler
SYSCONF_UIC = $(QTDIR)/bin/uic
# Linking shared libraries
# - Build the $(TARGET) library, eg. lib$(TARGET).so.2.2.2
# - Place target in $(DESTDIR) - which has a trailing /
# - Usually needs to incorporate $(VER_MAJ), $(VER_MIN) and $(VER_PATCH)
#
SYSCONF_LINK_SHLIB = gcc
SYSCONF_LINK_TARGET_SHARED = lib$(TARGET).so.$(VER_MAJ).$(VER_MIN).$(VER_PATCH)
SYSCONF_LINK_LIB_SHARED = $(SYSCONF_LINK_SHLIB) -shared -Wl,-soname,lib$(TARGET).so.$(VER_MAJ) \
$(LFLAGS) -o $(SYSCONF_LINK_TARGET_SHARED) \
$(OBJECTS) $(OBJMOC) $(LIBS) && \
mv $(SYSCONF_LINK_TARGET_SHARED) $(DESTDIR); \
cd $(DESTDIR) && \
rm -f lib$(TARGET).so lib$(TARGET).so.$(VER_MAJ) lib$(TARGET).so.$(VER_MAJ).$(VER_MIN); \
ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so; \
ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ); \
ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ).$(VER_MIN)
# Linking static libraries
# - Build the $(TARGET) library, eg. lib$(TARGET).a
# - Place target in $(DESTDIR) - which has a trailing /
#
SYSCONF_AR = ar cqs
SYSCONF_LINK_TARGET_STATIC = lib$(TARGET).a
SYSCONF_LINK_LIB_STATIC = rm -f $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) ; \
$(SYSCONF_AR) $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) $(OBJECTS) $(OBJMOC)
# Compiling application source
SYSCONF_CXXFLAGS = -pipe -DQWS -fno-exceptions -fno-rtti -O2 -Wall -W -DNO_DEBUG
SYSCONF_CFLAGS = -pipe -O2 -Wall -W
# Default link type (static linking is still be used where required)
SYSCONF_LINK_LIB = $(SYSCONF_LINK_LIB_SHARED)
SYSCONF_LINK_TARGET = $(SYSCONF_LINK_TARGET_SHARED)
# Compiling library source
SYSCONF_CXXFLAGS_LIB = -fPIC
SYSCONF_CFLAGS_LIB = -fPIC
# Compiling shared-object source
SYSCONF_CXXFLAGS_SHOBJ = -fPIC
SYSCONF_CFLAGS_SHOBJ = -fPIC
# Linking Qt
SYSCONF_LIBS_QTLIB = $(SYSCONF_LFLAGS_X11) $(QT_LIBS_MT) $(QT_LIBS_OPT)
# Linking Qt applications
SYSCONF_LIBS_QTAPP =
# Platform output directories
MOC_DIR = .moc/linux-generic-g++/
OBJECTS_DIR = .obj/linux-generic-g++/
#############################################################################
####### Compiler, tools and options
CXX = $(SYSCONF_CXX) $(QT_CXX_MT)
CXXFLAGS= $(SYSCONF_CXXFLAGS_QTOPIA) $(SYSCONF_CXXFLAGS_QT) $(SYSCONF_CXXFLAGS) -DQTOPIA_APP_INTERFACE
CC = $(SYSCONF_CC) $(QT_C_MT)
CFLAGS = $(SYSCONF_CFLAGS_QTOPIA) $(SYSCONF_CFLAGS) -DQTOPIA_APP_INTERFACE
INCPATH = -I$(MOC_DIR)
LFLAGS = $(SYSCONF_LFLAGS_QTOPIA) $(SYSCONF_RPATH_QTOPIA) $(SYSCONF_LFLAGS_QT) $(SYSCONF_RPATH_QT) $(SYSCONF_LFLAGS) $(QT_LFLAGS_MT)
LIBS = $(SUBLIBS) -lqpe $(SYSCONF_LIBS_QTOPIA) $(SYSCONF_LIBS_QT) $(SYSCONF_LIBS) $(SYSCONF_LIBS_QTAPP)
MOC = $(SYSCONF_MOC)
UIC = $(SYSCONF_UIC)
####### Target
DESTDIR = $(QPEDIR)/bin/
VER_MAJ = 1
VER_MIN = 0
VER_PATCH = 0
TARGET = 8gprs
TARGET1 = lib$(TARGET).so.$(VER_MAJ)
####### Files
HEADERS = gprs_impl.h \
call_impl.h \
serial.h
SOURCES = gprs_impl.cpp \
call_impl.cpp \
serial.cpp \
main.cpp
OBJECTS = $(OBJECTS_DIR)/gprs_impl.o \
$(OBJECTS_DIR)/main.o \
$(OBJECTS_DIR)/gprs.o \
$(OBJECTS_DIR)/serial.o \
$(OBJECTS_DIR)/call_impl.o \
$(OBJECTS_DIR)/call.o
INTERFACES = gprs.ui
UICDECLS = gprs.h
UICIMPLS = gprs.cpp
SRCMOC = $(MOC_DIR)/gprs.cpp
OBJMOC = $(OBJECTS_DIR)/moc_gprs.o
INTERFACES = call.ui
UICDECLS = call.h
UICIMPLS = call.cpp
SRCMOC = $(MOC_DIR)/call.cpp
OBJMOC = $(OBJECTS_DIR)/call.o
####### Implicit rules
.SUFFIXES: .cpp .cxx .cc .C .c
.cpp.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.cxx.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.cc.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.C.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.c.o:
$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
####### Build rules
all: $(DESTDIR)$(TARGET)
$(DESTDIR)$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC) $(SUBLIBS)
$(SYSCONF_LINK) $(LFLAGS) -o $(DESTDIR)$(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS)
moc: $(SRCMOC)
tmake:
tmake 8gprs.pro
clean:
-rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(UICIMPLS) $(UICDECLS)
-rm -f *~ core
-rm -f allmoc.cpp
####### Extension Modules
listpromodules:
@echo
listallmodules:
@echo
listaddonpromodules:
@echo
listaddonentmodules:
@echo
REQUIRES=
####### Sub-libraries
###### Combined headers
####### Compile
$(OBJECTS_DIR)/gprs_impl.o: gprs_impl.cpp \
serial.h \
gprs_impl.h \
gprs.h \
call_impl.h \
call.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $(OBJECTS_DIR)/gprs_impl.o gprs_impl.cpp
$(OBJECTS_DIR)/call_impl.o: call_impl.cpp \
serial.h \
call_impl.h \
call.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $(OBJECTS_DIR)/call_impl.o call_impl.cpp
$(OBJECTS_DIR)/main.o: main.cpp \
gprs_impl.h \
gprs.h \
call_impl.h \
call.h \
serial.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $(OBJECTS_DIR)/main.o main.cpp
$(OBJECTS_DIR)/serial.o:serial.cpp \
serial.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $(OBJECTS_DIR)/serial.o serial.cpp
gprs.h: gprs.ui
$(UIC) gprs.ui -o $(INTERFACE_DECL_PATH)/gprs.h
gprs.cpp: gprs.ui
$(UIC) gprs.ui -i gprs.h -o gprs.cpp
$(OBJECTS_DIR)/gprs.o: gprs.cpp \
gprs.h \
gprs.ui
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $(OBJECTS_DIR)/gprs.o gprs.cpp
$(OBJECTS_DIR)/moc_gprs.o: $(MOC_DIR)/moc_gprs.cpp \
gprs.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $(OBJECTS_DIR)/moc_gprs.o $(MOC_DIR)/moc_gprs.cpp
$(MOC_DIR)/moc_gprs.cpp: gprs.h
$(MOC) gprs.h -o $(MOC_DIR)/moc_gprs.cpp
call.h: call.ui
$(UIC) call.ui -o $(INTERFACE_DECL_PATH)/call.h
call.cpp: call.ui
$(UIC) call.ui -i call.h -o call.cpp
$(OBJECTS_DIR)/call.o: call.cpp \
call.h \
call.ui
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $(OBJECTS_DIR)/call.o call.cpp
$(OBJECTS_DIR)/moc_call.o: $(MOC_DIR)/moc_call.cpp \
call.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $(OBJECTS_DIR)/moc_call.o $(MOC_DIR)/moc_call.cpp
$(MOC_DIR)/moc_call.cpp: call.h
$(MOC) call.h -o $(MOC_DIR)/moc_call.cpp
lupdate-check:
@true
lupdate:
@true
lrelease:
@echo "No TRANSLATIONS"
ipkg: $(DESTDIR)$(TARGET) # among other things...
CTL="$(CONTROL)"; for ctrl in $$CTL; do cd $(QPEDIR)/ipkg; ../bin/mkipks -platform linux-generic-g++ $(QPEDIR)/src/$$ctrl ; done
package: ipkg
cd $(QPEDIR)/ipkg; ../bin/mkPackages
Makefile: 8gprs.pro
cd $(QPEDIR)/src; ./configure -platform linux-generic-g++ -make /root/test/qtopia/8gprs