• 5601阅读
  • 4回复

请教多线程程序编译时的错误 [复制链接]

上一主题 下一主题
离线jackyjun
 
只看楼主 倒序阅读 楼主  发表于: 2006-06-23
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
我使用的是qt.2,想测试一个多线程的例子。在我的工程文件里添加了thread,而后用tmake生成makefile。makefile里已经支持了 -DQT_THREAD_SUPPORT,在make的时候出现了错误如下:
QTDIR=/usr/lib/qt-3.1
LD_LIBRARY_PATH=/usr/lib/qt-3.1/lib:
make.....
g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -fno-default-inline -D_REENTRANT -DNO_DEBUG -DQT_THREAD_SUPPORT -I/usr/lib/qt-3.1/include -o multithread.o multithread.cpp
g++ -o multithread multithread.o   -L/usr/lib/qt-3.1/lib -lm -lqte-mt -lpthread
/usr/bin/ld: cannot find -lqte-mt
collect2: ld returned 1 exit status
make: *** [multithread] Error 1
根据提示错误,好像是没有连接的时候没有找到支持线程的qt的库,请问我应该怎么修改呢?
我的makefile如下:
#############################################################################
# Makefile for building multithread
# Generated by tmake at 16:09, 2006/06/23
#   Project: multithread
#   Template: app
#############################################################################

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

CC     =     gcc
CXX   =     g++
CFLAGS =     -pipe -Wall -W -O2 -fno-default-inline -D_REENTRANT -DNO_DEBUG -DQT_THREAD_SUPPORT
CXXFLAGS=     -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -fno-default-inline -D_REENTRANT -DNO_DEBUG -DQT_THREAD_SUPPORT
INCPATH =     -I$(QTDIR)/include
LINK   =     g++
LFLAGS =
LIBS   =     $(SUBLIBS) -L$(QTDIR)/lib -lm -lqte-mt -lpthread
MOC   =     $(QTDIR)/bin/moc
UIC   =     $(QTDIR)/bin/uic

TAR   =     tar -cf
GZIP   =     gzip -9f

####### Files

HEADERS =
SOURCES =     multithread.cpp

####### Files

HEADERS =
SOURCES =     multithread.cpp
OBJECTS =     multithread.o
INTERFACES =
UICDECLS =
UICIMPLS =
SRCMOC =
OBJMOC =
DIST   =
TARGET =     multithread
INTERFACE_DECL_PATH = .

####### 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: $(TARGET)

$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC)
    $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS)

moc: $(SRCMOC)

tmake: Makefile

Makefile: multithread.pro
    tmake multithread.pro -o Makefile

dist:
    $(TAR) multithread.tar multithread.pro $(SOURCES) $(HEADERS) $(INTERFACES) $(DIST)
    $(GZIP) multithread.tar

clean:
    -rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(UICIMPLS) $(UICDECLS) $(TARGET)
    -rm -f *~ core
####### Sub-libraries


###### Combined headers


####### Compile

multithread.o: multithread.cpp


谢谢大家的帮助!
离线giscn
只看该作者 1楼 发表于: 2006-06-25
qte-mt? qt-mt?
http://nzt.spaces.live.com
离线jackyjun
只看该作者 2楼 发表于: 2006-06-26
谢谢!将qte-mt改成了qt-mt就好了。
[ 此贴被jackyjun在2006-06-26 08:59重新编辑 ]
离线windytwang

只看该作者 3楼 发表于: 2006-06-27
在CXXFLAGS里而不是CFLAGS里加_DQT_THREAD_SUPPORT
离线jackyjun
只看该作者 4楼 发表于: 2006-06-27
3楼的兄弟,生成的makefile里已经在CXXFLAGS里加上了_DQT_THREAD_SUPPORT了
快速回复
限100 字节
 
上一个 下一个