• 5866阅读
  • 2回复

[共享]MinGW编译Qt较好的一些文章链接(静态或动态) [复制链接]

上一主题 下一主题
离线hohos
 

只看楼主 倒序阅读 楼主  发表于: 2013-04-20
MinGW编译Qt较好的一些文章链接(静态或动态)
— 本帖被 XChinux 执行加亮操作(2013-04-26) —
1,Qt4时的静态链接
http://qt-project.org/wiki/How_to_build_a_static_Qt_version_for_Windows_with_gcc

2,Mysql库 使用-qt-sql-mysql参数以支持mysql
libmysql.dll转.a
http://forums.mysql.com/read.php?167,295483,297733#msg-297733
似乎是这个,我忘记了。。。。有两种转.a的命令,其中通用的一种在我机子环境上无法实现

3,权威MinGW编译Qt(必看,必细看)
http://qt-project.org/wiki/MinGW-64-bit

4,Building Qt5 from Git(必看,结合第三条)
http://qt-project.org/wiki/Building-Qt-5-from-Git

5,如果需要使用其他库,可构建msys mingw环境。
另外使用新版本mingw,构建所需要的库,甚至MinGW32位与64位共存
可参照以下URL,其中libpng jpeg tiff lcsm2 fftw库是为了opencv与GraphicsMagick/ImageMagick库所编译,这几个库对于编译Qt5都不是必须的,可去掉:
http://www.kineticsystem.org/mingw

此链接中 profile那里,可将以下内容去除,以及开头的pkg-config一行去除
export PKG_CONFIG=$DST_DIR/pkgconfig/bin/pkg-config.exe# Configure PATH and FLAGS.APPLICATION_ARRAY=("LIBICONV_PREFIX:$DST_DIR/libiconv""ZLIB_PREFIX:$DST_DIR/zlib""BZIP2_PREFIX:$DST_DIR/bzip2""LIBTOOL_PREFIX:$DST_DIR/libtool""LIBXML2_PREFIX:$DST_DIR/libxml2""LIBPNG_PREFIX:$DST_DIR/libpng""LIBJPEG_PREFIX:$DST_DIR/libjpeg""LIBTIFF_PREFIX:$DST_DIR/libtiff""FREETYPE2_PREFIX:$DST_DIR/freetype2""LCMS2_PREFIX:$DST_DIR/lcms2""FFTW_PREFIX:$DST_DIR/fftw""BOTAN_PREFIX:$DST_DIR/botan""QT_PREFIX:$DST_DIR/qt""OPENCV_PREFIX:$DST_DIR/opencv""LIBUSBX_PREFIX:$DST_DIR/libusbx""LIBFFI_PREFIX:$DST_DIR/libffi""PKGCONFIG_PREFIX:$DST_DIR/pkg-config""GETTEXT_PREFIX:$DST_DIR/gettext""GLIB_PREFIX:$DST_DIR/glib""GMQ8_PREFIX:$DST_DIR/gm-q8""GMQ16_PREFIX:$DST_DIR/gm-q16""IMQ8_PREFIX:$DST_DIR/im-q8""IMQ16_PREFIX:$DST_DIR/im-q16""BOOST_PREFIX:$DST_DIR/boost""LIBUSBX_PREFIX:$DST_DIR/libusbx""GLIB_PREFIX:$DST_DIR/glib""YAFARAY_PREFIX:$DST_DIR/yafaray")for app in "${APPLICATION_ARRAY[@]}" ; do    KEY=${app%%:*}    VALUE=${app##*:}    export "$KEY"="$VALUE"        export PATH="$VALUE/bin:$PATH"    export LDFLAGS="-L$VALUE/lib $LDFLAGS"    export CFLAGS="-I$VALUE/include $CFLAGS"    export CPPFLAGS="-I$VALUE/include $CPPFLAGS"    export CXXFLAGS="-I$VALUE/include $CXXFLAGS"    export PKG_CONFIG_PATH="$VALUE/lib/pkgconfig:$PKG_CONFIG_PATH"doneexport LIBFFI_CFLAGS="-I $DST_DIR/libffi/lib/libffi-3.0.11/include"export LIBFFI_LIBS="-L$DST_DIR/libffi/lib"


GNU软件编译默认安装在/usr/local目录下 如/usr/local/lib /usr/local/bin等。
将各软件.a .la dll bin放在一起,符合Linux软件结构,主要是方便取库,不用各个文件夹切换。

6,目前静态编译Qt,如果取用Icu库(编译WebKit必须),icu库本身也必须是静态。
静态链接openssl静态库 用 -openssl-linked OPENSSL_LIBS="-L/the/dir/to/openssl -lssl -lcrypto“参数
动态链接openssl动态库用 -openssl即可


离线tangtao_xp
只看该作者 1楼 发表于: 2013-04-26
正在编译中
离线hohos

只看该作者 2楼 发表于: 2013-04-26
注意,如果使用MSYS+MINGW编译其他库,MinGW版本尽量甚至可能是必须与Qt的MinGW版本一致。。。
如果版本差别较大,异常处理不同,会与Qt无法正常链接。
快速回复
限100 字节
 
上一个 下一个