Qt Creater怎么编译出静态连接的程序
大家好,我是新手,刚开始学Qt,写了一个小程序,不知道如何才能编译成静态连接的程序。复制一堆动态链接库感觉不太美观。还有如果用动态库的话,都需要拷哪些东西才能让程序显示中文。
请各位大侠指点,谢谢。
[解决办法]
楼主说的情况我没遇到过,我用的是下面两行代码:
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
你试试~
[解决办法]
配置的时候加-static参数可以编译静态库,例如:
./configure -prefix /usr/local/qte-arm -debug-and-release -qt3support -qt-zlib -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -make libs -nomake examples -nomake demos -nomake docs -no-cups -iconv -xplatform qws/linux-arm-g++ -embedded arm -little-endian -qt-freetype -depths 8,16,24,32 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-qvfb -no-gfx-vnc -no-gfx-multiscreen -no-dbus -qt-sql-sqlite -qt-kbd-qvfb -qt-kbd-tty -qt-mouse-pc -no-glib -webkit -xmlpatterns -exceptions -static
编译好静态库后,建一个gui工程。
在main函数里加如下代码
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
在工程目录下打终端,执行
/usr/local/qte-arm/bin/qmake && make
就会生成静态库的程序。
要显示中文,先要找个中文字库。在设置好下面的环境变量就可以正常显示中文。
export QT_QWS_FONTDIR=/path/to/fonts
./dialog -qws