首页| 论坛| 消息

标题:怎么我编译的时候出现这样的错误?
作者:chwoozy
日期:2006-04-09 13:39
内容:

从官方文档里拷下来了一段“Helloworld”的代码:
#include
#include
int main( int argc, char **argv )
{
 QApplication a(argc, argv);
 QPushButton hello( "Hello world!", 0 );
 hello.resize( 100, 30 );
 a.setMainWidget( &hello );
 hello.show();
 return a.exec();
}
保存为main.cpp,然后用qmake -project
            qmake
来生成makefile,这两步都没有报错
但是在make的时候出错了:
# make
g++ -c -pipe -Wall -W -O2 -g -pipe -D_FORTIFY_SOURCE=2 -m32 -march=i686 -mcpu=i686 -mtune=i686 -DQT_NO_DEBUG-I/usr/lib/qt-3.3/mkspecs/default -I. -I. -I/usr/lib/qt-3.3/include -o main.o main.cpp
g++-o qt main.o  -L/usr/X11R6/lib -lXext -lX11 -lm
main.o: In function `main':
/home/chwoozy/qt/main.cpp:7: undefined reference to `QApplication::QApplication(int&, char**)'
/home/chwoozy/qt/main.cpp:9: undefined reference to `QString::QString(char const*)'
/home/chwoozy/qt/main.cpp:9: undefined reference to `QPushButton::QPushButton(QString const&, QWidget*, char const*)'
main.o: In function `main':
/usr/lib/qt-3.3/include/qstring.h:847: undefined reference to `QString::shared_null'
/usr/lib/qt-3.3/include/qstring.h:848: undefined reference to `QStringData::deleteSelf()'
main.o: In function `main':
/home/chwoozy/qt/main.cpp:10: undefined reference to `QPushButton::resize(int, int)'
/home/chwoozy/qt/main.cpp:12: undefined reference to `QApplication::setMainWidget(QWidget*)'
/home/chwoozy/qt/main.cpp:13: undefined reference to `QWidget::show()'
/home/chwoozy/qt/main.cpp:14: undefined reference to `QApplication::exec()'
/home/chwoozy/qt/main.cpp:14: undefined reference to `QPushButton::~QPushButton()'
/home/chwoozy/qt/main.cpp:14: undefined reference to `QApplication::~QApplication()'
main.o: In function `main&#39 ..


#1 [chwoozy 04-09 17:38]
需不需要我把Makefile也帖上来?
#2 [XChinux 04-09 20:17]
g++ -o qt main.o -L/usr/X11R6/lib -lXext -lX11 -lm
这一句似乎表明了没有找到动态库来链接。
你需要把QT3的lib库的路径加入到lD_LIBRARY_PATH变量中去。
#3 [chwoozy 04-09 22:12]
很奇怪,MagicLinux2.0正式版中没有这个lD_LIBRARY_PATH变量。我手动设了一下,即在Shell里运行
lD_LIBRARY_PATH=/usr/lib/qt-3.3/lib
后用make时问题依旧。我怀疑是不是makefile里有句:
LIBS = $(SUBLIBS) -L/usr/X11R6/lib -lXext -lX11 -lm
是这句设置变量的语句引起的问题吧
#4 [XChinux 04-09 22:39]
那你手工在.pro里加上关于库的路径。
#5 [chwoozy 04-09 22:40]
很奇怪我以前make附件中的这个项目的时候就没事

<< 1 2 >> (1/2)

回复 发表
主题 版块