• 4887阅读
  • 2回复

傻猫 在吗?麻烦帮帮忙,发布的问题 [复制链接]

上一主题 下一主题
 
只看楼主 倒序阅读 楼主  发表于: 2008-09-21
— 本帖被 XChinux 执行加亮操作(2008-09-25) —
请教一个问题啊,就是QT程序发布都需要那些东东

我把生成的exe文件,QtGui4.dll 、QtCore4.dll还有vc里的链接库也加在一起,发现里面的图片显示不出来,后来我把plugins里的image..文件夹拷过来,图片就可以显示了,但现在会出现乱码啊,听你说需要把那些链接库拷过来啊?放在什么路径里呢?谢谢了
离线傻猫
只看该作者 1楼 发表于: 2008-09-24
建议看下QT助手里面的Deploying Qt Applications这个文章

乱码的话,需要带上\plugins\codecs里面的qcncodecs4.dll(这个是编码的插件)
如果还是有乱码的话,你在main代码里面写死编码
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("gbk"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gbk"));
    QTextCodec::setCodecForTr(QTextCodec::codecForName("gbk"));
如果有数据库的话还要带上数据库的链接库

最后还有vc的链接库,qt的库。

如果还有dll依赖,可以用vc的DEPENDS.EXE去查看下,这个东西很好用,发布经常要用这个来查看库依赖的

我现在没做QT了,可能比较少来这个论坛,有事可以到我blog上留意交流也可以
http://hi.baidu.com/ning_cat
-------------------------------
不常在
有事短消息或者到我blog讨论http://hi.baidu.com/ning_cat
已经没用qt作开发了。。。:-(
离线傻猫
只看该作者 2楼 发表于: 2008-09-24
插件路径的指定,一般默认放到目录下的plugins目录下就可以了,如果遇到一些特殊情况 可以通过qt.conf来指定插件,链接库的位置
qt.conf


Prefix .
Documentation doc
Headers include
Libraries lib
Binaries bin
Plugins plugins
Data .
Translations translations
Settings .
Examples .
Demos .

或者在main函数里面直接硬编码

#include <QtGui/QApplication>
#include "mainwindow.h"
#include <QTextCodec>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlQueryModel>
#include <QTranslator>
#include <QCoreApplication>
#include <QMessageBox>
#include <QPluginLoader>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QApplication::addLibraryPath("plugins");
    QPluginLoader plugin("plugins\\codecs\\qcncodecs4.dll");
    if(! plugin.load())
            QMessageBox::information(NULL,"error",plugin.errorString (),QMessageBox::Ok);
    QPluginLoader sqlPlugin("plugins\\sqldrivers\\qsqlmysql4.dll");
    if(! sqlPlugin.load())
            QMessageBox::information(NULL,"error",sqlPlugin.errorString (),QMessageBox::Ok);
    /////////////////////////////////////////////////////////////////设置编码
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("gbk"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gbk"));
    QTextCodec::setCodecForTr(QTextCodec::codecForName("gbk"));

    /////////////////////////////////////////////////////////////////////

    /*QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("work");
    db.setUserName("root");
    db.setPassword("*******");*/
    ///////////////////////////////////数据库设置
    //if(db.open()==false)
    //{
    //    showSqlError();
    //}
    //db.exec("SET NAMES 'utf8'");


    MainWindow w;
    w.show();
    a.connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
    return a.exec();
}
[ 此贴被傻猫在2008-09-24 23:32重新编辑 ]
-------------------------------
不常在
有事短消息或者到我blog讨论http://hi.baidu.com/ning_cat
已经没用qt作开发了。。。:-(
快速回复
限100 字节
 
上一个 下一个