+ -
当前位置:首页 → 问答吧 → MinGW 4.4.3 交叉编译成功,请教target的参数指定问题?

MinGW 4.4.3 交叉编译成功,请教target的参数指定问题?

时间:2010-03-02

来源:互联网

官方只有4.4.0,TDM版本只到4.4.1,已经很久没有更新了。
之前我尝试过Windows平台下利用MSYS编译,并且将编译方法和编译器发布在:http://qp-gcc.googlecode.com
可是,由于MSYS的的原因,导致这个编译器有下面四个已知的问题:
① gdb调试支持不好,对官方的7.0(2009-10-07)版本支持很好,但不支持后续版本,会导致gdb退出,返回值为1
② 编译Qt时找不到float.h,需要自己将这个文件拷贝到Qt的include目录下
③ 在编译过程中,不能使用--prefix=/mingw,否则会出现找不到头文件的现象,于是只能用/qp来替换。
④ 不能直接make,只能“make 组件名”

历时两天,终于在Linux平台通过交叉编译解决了上述所有问题,并且相应二进制版本发布在:http://qp-gcc.googlecode.com

交叉编译流程:
① 编译cross c compiler,需要查找windows的头文件,我是通过export C_INCLUDE_PATH来解决的,因为--with-headers失效了。今天晚上我会尝试解决这个问题。
② 利用该c cross compiler,编译w32api和runtime,并且安装他们。
③ 利用该c cross compiler和w32api、runtime,编译完整的cross c/c++ compiler with libs。
③ 利用完整的cross compiler编译MinGW32 for windows。
这里,--host、--build和--target的参数非常关键。

我的问题:
--target的参数我使用了:--target=/mingw32,而这会在configure时变成i386-pc-mingw32。
请问:如何在不指定--target=i686-mingw32的情况下,让configure时得到相应的参数为i686-pc-mingw32呢?

另,请在2010-03-02前下载并使用MinGW QP版的朋友更新这个版本!

编译参数:
代码:
Using built-in specs.
Target: mingw32
Configured with: ../../src/gcc-4.4.3/configure --prefix=/mingw --host=mingw32 --target=mingw32 --bui
ld=i686-pc-linux-gnu --enable-languages=c,c++ --enable-cxx-flags='-fno-function-sections -fno-data-s
ections' --enable-fully-dynamic-string --enable-version-specific-runtime-libs --enable-threads=win32
 --disable-nls --disable-shared --disable-symvers --disable-libstdcxx-pch --disable-win32-registry -
-disable-sjlj-exceptions --with-dwarf2 --with-gmp=/usr/local --with-mpfr=/usr/local --with-pkgversio
n='QP mingw32' --with-bugurl=http://www.qpsoft.com/blog/guestbook.php
Thread model: win32
gcc version 4.4.3 (QP mingw32)

作者: Loaden   发布时间: 2010-03-02