LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 694|回复: 1

修正交叉编译mingw32-gcc-base时找不到头文件的错误

[复制链接]
发表于 2010-3-2 23:21:08 | 显示全部楼层 |阅读模式
主要原因是--with-headers参数不好使,不知道为什么,用GCC 4.4.3编译官方的PKGBUILD时失败:找不到windows.h。

改了一下PKGBUILD文件,现在可以编译了。
  1. # $Id: PKGBUILD 1536 2009-08-25 13:40:09Z spupykin $
  2. # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
  3. # Maintainer: Ondrej Jirman <megous@megous.com>

  4. pkgname=mingw32-gcc-base
  5. pkgver=4.4.0
  6. _w32apiver=3.14
  7. _runtimever=3.17
  8. pkgrel=1
  9. arch=(i686 x86_64)
  10. pkgdesc="A C cross-compiler for building Windows executables on Linux"
  11. depends=(mingw32-binutils)
  12. makedepends=(p7zip)
  13. conflicts=(mingw32-gcc)
  14. options=(!strip force)
  15. license=(GPL LGPL)
  16. url="http://mingw.sf.net"
  17. source=(http://downloads.sourceforge.net/project/mingw/GCC%20Version%204/Current%20Release_%20gcc-$pkgver/gcc-$pkgver-src.tar.bz2
  18.         http://switch.dl.sf.net/sourceforge/mingw/w32api-${_w32apiver}-mingw32-src.tar.gz
  19.         http://switch.dl.sf.net/sourceforge/mingw/mingwrt-${_runtimever}-mingw32-src.tar.gz)
  20. md5sums=('CF5D787BEE57F38168B74D65A7C0E6FD'
  21.         'C31BAEDAF2A8D38874E056A112A4FBC8'
  22.         '7C76CDE0A5DD1C04BEDF8AECF34084E4')

  23. build()
  24. {
  25.   # prepare headers
  26.   mkdir -p $srcdir/mingw/include/
  27.   cp -r $srcdir/w32api-${_w32apiver}-mingw32/include/* \
  28.     $srcdir/mingwrt-${_runtimever}-mingw32/include/* \
  29.     $srcdir/mingw/include/

  30.   unset CFLAGS CXXFLAGS

  31.   mkdir -p $srcdir/build
  32.   cd $srcdir/build

  33.   chmod ugo+x $srcdir/gcc-$pkgver/configure
  34.   chmod ugo+x $srcdir/gcc-$pkgver/move-if-change

  35.   $srcdir/gcc-$pkgver/configure \
  36.     --target=mingw32 \
  37.     --host=$CHOST \
  38.     --build=$CHOST \
  39.     --prefix=/usr \
  40.     --enable-languages=c \
  41.     --enable-sjlj-exceptions \
  42.     --enable-hash-synchronization \
  43.     --disable-nls \
  44.     --disable-shared \
  45.     --disable-libssp \
  46.     --disable-libgomp \
  47.     --with-sysroot=$srcdir \
  48.     || return 1

  49.   make || return 1
  50.   make install DESTDIR=$pkgdir || return 1

  51.   cd $pkgdir
  52.   rm -rf usr/bin/mingw32-{gcov,gccbug,gcc-*} \
  53.     usr/{include,info,man,lib/libiberty.a} usr/mingw32
  54.   strip usr/bin/*
  55.   strip usr/libexec/gcc/mingw32/$pkgver/{cc1*,collect2}
  56.   mingw32-strip -g usr/lib/gcc/mingw32/$pkgver/*.a
  57. }
复制代码
 楼主| 发表于 2010-3-2 23:22:23 | 显示全部楼层
一共改了两个地方,首先将头文件路径改一下:
  1.   # prepare headers
  2.   mkdir -p $srcdir/mingw/include/
  3.   cp -r $srcdir/w32api-${_w32apiver}-mingw32/include/* \
  4.     $srcdir/mingwrt-${_runtimever}-mingw32/include/* \
  5.     $srcdir/mingw/include/
复制代码
其次,将配置参数改一下:
  1. --with-sysroot=$srcdir \
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表