• 7029阅读
  • 2回复

[提问]请教一个QT动态静态编译共存的问题 [复制链接]

上一主题 下一主题
离线realfan
 

只看楼主 倒序阅读 楼主  发表于: 2012-11-26
为了便于发布,用QT静态编译的方式创建应用程序。
release版还好。debug版,静态编译,生成的文件很大,调试时很耗时。
如何能够静态动态共存呢?
我现在是装了两套QT,一套用于静态一套用于动态。
但遇到一个问题,程序用到ODBC,静态编译时,要在pro文件中加
QTPLUGIN += qsqlodbc
代码中加
#include <QtPlugin>
Q_IMPORT_PLUGIN(qsqlodbc)

但动态编译时,不能加上面的。于是在代码中这样写
#ifdef QT_NO_DEBUG
    #include <QtPlugin>
    Q_IMPORT_PLUGIN(qsqlodbc)
#endif
只在release时,包含上面内容
在pro文件中的
QTPLUGIN += qsqlodbc
如何区分呢,我用这种方式,但不管用,debug动态创建时,还是会出错
debug {
   CONFIG += share
   CONFIG -= static
}
release {
    QTPLUGIN += qsqlodbc
    CONFIG += static
}
QTPLUGIN += qsqlodbc会一直起作用,如何使其只在release版本起作用呢?


离线XChinux

只看该作者 1楼 发表于: 2012-11-26


CONFIG(release, debug|release):message(Release build!) #will print


CONFIG(debug, debug|release):message(Debug build!) #no print
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线realfan

只看该作者 2楼 发表于: 2012-11-26
回 1楼(XChinux) 的帖子
非常感谢!问题解决
快速回复
限100 字节
 
上一个 下一个