• 8390阅读
  • 1回复

qmake生成Makefile,里面的环境变量有问题? [复制链接]

上一主题 下一主题
离线thinke365
 

只看楼主 倒序阅读 楼主  发表于: 2010-02-17
本地环境变量
[root@localhost qt]# export | grep qt
declare -x PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/work/program/jdk1.6.0_12/bin:/work/program/dsk/qt-everywhere-opensource-src-4.6.1/bin:/work/program/dsk/qt-everywhere-opensource-src-4.6.1/bin"
declare -x PWD="/var/ftp/pub/qt"
declare -x QMAKESPEC="/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/linux-g++"
declare -x QTDIR="/work/program/dsk/qt-everywhere-opensource-src-4.6.1"
declare -x QTINC="/work/program/dsk/qt-everywhere-opensource-src-4.6.1/include"
declare -x QTLIB="/work/program/dsk/qt-everywhere-opensource-src-4.6.1/lib"

make出错
[root@localhost qt]# make
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/linux-g++ -I. -I/work/program/qtdevelop/include/QtCore -I/work/program/qtdevelop/include/QtGui -I/work/program/qtdevelop/include -I. -I. -o hello.o hello.cpp
hello.cpp:1:24: 错误:QApplication:没有那个文件或目录
hello.cpp:2:18: 错误:QLabel:没有那个文件或目录
hello.cpp:10:2: 警告:文件未以空白行结束
hello.cpp: In function ‘int main(int, char**)’:
hello.cpp:6: 错误:‘QApplication’ 在此作用域中尚未声明
hello.cpp:6: 错误:expected `;' before ‘app’
hello.cpp:7: 错误:‘QLabel’ 在此作用域中尚未声明
hello.cpp:7: 错误:‘label’ 在此作用域中尚未声明
hello.cpp:7: 错误:expected type-specifier before ‘QLabel’
hello.cpp:7: 错误:expected `;' before ‘QLabel’
hello.cpp:9: 错误:‘app’ 在此作用域中尚未声明
hello.cpp: At global scope:
hello.cpp:4: 警告:未使用的参数 ‘argc’
hello.cpp:4: 警告:未使用的参数 ‘argv’
make: *** [hello.o] 错误 1

Makefile内容
#############################################################################
# Makefile for building: qt
# Generated by qmake (2.01a) (Qt 4.6.1) on: ?? 2? 17 16:37:16 2010
# Project: qt.pro
# Template: app
# Command: /work/program/dsk/qt-everywhere-opensource-src-4.6.1/bin/qmake -unix -o Makefile qt.pro
#############################################################################

####### Compiler, tools and options

CC = gcc
CXX = g++
DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB
CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
INCPATH = -I/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/linux-g++ -I. -I/work/program/qtdevelop/include/QtCore -I/work/program/qtdeve
lop/include/QtGui
-I/work/program/qtdevelop/include -I. -I.            // 生成include的目录有问题吧?应该对应于QTINC才对啊。。。
LINK = g++
LFLAGS = -Wl,-O1
LIBS = $(SUBLIBS) -L/work/program/qtdevelop/lib -lQtGui -lQtCore -lpthread
AR = ar cqs
RANLIB =
QMAKE = /work/program/dsk/qt-everywhere-opensource-src-4.6.1/bin/qmake
TAR = tar -cf
COMPRESS = gzip -9f
COPY = cp -f
SED = sed
COPY_FILE = $(COPY)
COPY_DIR = $(COPY) -r
STRIP = strip
INSTALL_FILE = install -m 644 -p
INSTALL_DIR = $(COPY_DIR)
INSTALL_PROGRAM = install -m 755 -p
DEL_FILE = rm -f
SYMLINK = ln -f -s
DEL_DIR = rmdir
MOVE = mv -f
CHK_DIR_EXISTS= test -d
MKDIR = mkdir -p

####### Output directory

OBJECTS_DIR = ./

####### Files

SOURCES = hello.cpp
OBJECTS = hello.o
DIST = /work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/common/g++.conf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/common/unix.conf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/common/linux.conf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/qt_functions.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/qt_config.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/exclusive_builds.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/default_pre.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/release.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/default_post.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/warn_on.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/qt.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/unix/thread.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/moc.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/resources.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/uic.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/yacc.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/lex.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/include_source_dir.prf \
qt.pro
QMAKE_TARGET = qt
DESTDIR =
TARGET = qt

first: all
####### Implicit rules

.SUFFIXES: .o .c .cpp .cc .cxx .C
.cpp.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"

.cc.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"

.cxx.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"

.C.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"

.c.o:
$(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"

####### Build rules

all: Makefile $(TARGET)

$(TARGET): $(OBJECTS)
$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)

Makefile: qt.pro /work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/linux-g++/qmake.conf /work/program/dsk/qt-everywhere-opensource-src-4.6.1/mks
pecs/common/g++.conf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/common/unix.conf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/common/linux.conf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/qt_functions.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/qt_config.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/exclusive_builds.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/default_pre.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/release.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/default_post.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/warn_on.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/qt.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/unix/thread.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/moc.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/resources.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/uic.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/yacc.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/lex.prf \
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/include_source_dir.prf
$(QMAKE) -unix -o Makefile qt.pro
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/common/g++.conf:
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/common/unix.conf:
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/common/linux.conf:
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/qt_functions.prf:
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/qt_config.prf:
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/exclusive_builds.prf:
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/default_pre.prf:
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/release.prf:
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/default_post.prf:
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/warn_on.prf:
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/qt.prf:
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/unix/thread.prf:
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/moc.prf:
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/resources.prf:
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/uic.prf:
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/yacc.prf:
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/lex.prf:
/work/program/dsk/qt-everywhere-opensource-src-4.6.1/mkspecs/features/include_source_dir.prf:
qmake: FORCE
@$(QMAKE) -unix -o Makefile qt.pro

dist:
@$(CHK_DIR_EXISTS) .tmp/qt1.0.0 || $(MKDIR) .tmp/qt1.0.0
$(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/qt1.0.0/ && $(COPY_FILE) --parents hello.cpp .tmp/qt1.0.0/ && (cd `dirname .tmp/qt1.0.0` && $(TAR) qt
1.0.0.tar qt1.0.0 && $(COMPRESS) qt1.0.0.tar) && $(MOVE) `dirname .tmp/qt1.0.0`/qt1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/qt1.0.0


clean:compiler_clean
-$(DEL_FILE) $(OBJECTS)
-$(DEL_FILE) *~ core *.core


####### Sub-libraries
distclean: clean
-$(DEL_FILE) $(TARGET)
-$(DEL_FILE) Makefile


/work/program/qtdevelop/bin/moc:
(cd $(QTDIR)/src/tools/moc && $(MAKE))

mocclean: compiler_moc_header_clean compiler_moc_source_clean

mocables: compiler_moc_header_make_all compiler_moc_source_make_all

compiler_moc_header_make_all:
compiler_moc_header_clean:
compiler_rcc_make_all:
compiler_rcc_clean:
compiler_image_collection_make_all: qmake_image_collection.cpp
compiler_image_collection_clean:
-$(DEL_FILE) qmake_image_collection.cpp
compiler_moc_source_make_all:
compiler_moc_source_clean:
compiler_uic_make_all:
compiler_uic_clean:
compiler_yacc_decl_make_all:
compiler_yacc_decl_clean:
compiler_yacc_impl_make_all:
compiler_yacc_impl_clean:
compiler_lex_make_all:
compiler_lex_clean:
compiler_clean:

####### Compile

hello.o: hello.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o hello.o hello.cpp

####### Install
install: FORCE

uninstall: FORCE

FORCE:
离线thinke365

只看该作者 1楼 发表于: 2010-02-17
http://www.linuxfans.org/bbs/thread-45534-1-1.html  3楼,生成Makefile,并修改。
不能一开始就生成正确的Makefile吗?

qmake -project
qmake
然后手动修改INCPATH,添加kde and qt path
make
快速回复
限100 字节
 
上一个 下一个