+ -
当前位置:首页 → 问答吧 → 修正交叉编译mingw32-gcc-base时找不到头文件的错误

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

时间:2010-03-03

来源:互联网

主要原因是--with-headers参数不好使,不知道为什么,用GCC 4.4.3编译官方的PKGBUILD时失败:找不到windows.h。

改了一下PKGBUILD文件,现在可以编译了。
代码:
# $Id: PKGBUILD 1536 2009-08-25 13:40:09Z spupykin $
# Maintainer: Sergej Pupykin <[email protected]>
# Maintainer: Ondrej Jirman <[email protected]>

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

build()
{
 # prepare headers
 mkdir -p $srcdir/mingw/include/
 cp -r $srcdir/w32api-${_w32apiver}-mingw32/include/* \
 $srcdir/mingwrt-${_runtimever}-mingw32/include/* \
 $srcdir/mingw/include/

 unset CFLAGS CXXFLAGS

 mkdir -p $srcdir/build
 cd $srcdir/build

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

 $srcdir/gcc-$pkgver/configure \
 --target=mingw32 \
 --host=$CHOST \
 --build=$CHOST \
 --prefix=/usr \
 --enable-languages=c \
 --enable-sjlj-exceptions \
 --enable-hash-synchronization \
 --disable-nls \
 --disable-shared \
 --disable-libssp \
 --disable-libgomp \
 --with-sysroot=$srcdir \
 || return 1

 make || return 1
 make install DESTDIR=$pkgdir || return 1

 cd $pkgdir
 rm -rf usr/bin/mingw32-{gcov,gccbug,gcc-*} \
 usr/{include,info,man,lib/libiberty.a} usr/mingw32
 strip usr/bin/*
 strip usr/libexec/gcc/mingw32/$pkgver/{cc1*,collect2}
 mingw32-strip -g usr/lib/gcc/mingw32/$pkgver/*.a
}

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

一共改了两个地方,首先将头文件路径改一下:
代码:
 # prepare headers
 mkdir -p $srcdir/mingw/include/
 cp -r $srcdir/w32api-${_w32apiver}-mingw32/include/* \
 $srcdir/mingwrt-${_runtimever}-mingw32/include/* \
 $srcdir/mingw/include/
其次,将配置参数改一下:
代码:
--with-sysroot=$srcdir \

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