首页| 论坛| 消息

标题:qt4 中 程序在VC中编译时的Link错误——新手提问
作者:fat64
日期:2006-10-24 22:38
内容:

程序如下:
......
#include
......
int main( int argc, char** argv )
{
setlocale(LC_ALL, "");

QGb18030Codec codec;
QTextCodec::setCodecForLocale(&codec);
QTextCodec::setCodecForTr(&codec);
QTextCodec::setCodecForCStrings(&codec);
/////////////////////////
// 创建 application,主窗口
QApplication* app = new QApplication(argc, argv);
..............
}
错误提示 :
main.obj : error LNK2001: unresolved external symbol "public: __thiscall QGb18030Codec::QGb18030Codec(void)" (??0QGb18030Codec@@QAE@XZ)
..\..\..\bin/esconsole.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
esconsole.exe - 2 error(s), 0 warning(s)
我想了很久都不知道这是什么原因造成的
谢谢花时间看我帖子的各位朋友!!!!!!


#1 [XChinux 10-25 10:06]
QGb18030Codec 是以插件的形式提供的,看错误提示是链接时发生错误,是不是由于你的找不到你的这个插件库的原因?
在plugins/codecs目录下面
#2 [fat64 10-25 21:20]
谢谢XChinux的回答
这个类是在src/plugins/codecs/cn下的,它的.pro文件中
TARGET = qcncodecs
DESTDIR = $$QT_BUILD_TREE/plugins/codecs

我在VC中的Project /Settings/Link中加了,"$(QTDIR)\plugins\codecs\qcncodecs.lib"
它应该能找到呀!
#3 [cauc_dg 10-28 16:23]
最好还是别用VC....
#4 [fat64 11-15 16:09]
找到解决办法了,这是qt3与qt4的不同,这样写就可以了

QTextCodec *codec = QTextCodec::codecForName("GB18030"); QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecForTr(codec); QTextCodec::setCodecForCStrings(codec);

回复 发表
主题 版块