1

我已将 MinGW-W64 安装到$HOME/mingw32

~$ ls -l mingw32
insgesamt 32
drwxr-xr-x  2 js js 4096 16. Aug 16:41 bin
drwxr-xr-x 10 js js 4096 26. Nov 14:49 i686-w64-mingw32
drwxr-xr-x  2 js js 4096 16. Aug 16:28 include
drwxr-xr-x  3 js js 4096 16. Aug 16:41 lib
drwxr-xr-x  3 js js 4096 16. Aug 16:36 libexec
drwxr-xr-x 14 js js 4096 16. Aug 16:41 licenses
drwxr-xr-x  4 js js 4096 26. Nov 15:17 QtWin32
drwxr-xr-x  6 js js 4096 16. Aug 16:41 share
~$

i686-w64-mingw32-gcc-4.7.1-2-release-linux64_rubenvb.tar.xz.tar这是由于在我的 linux64 构建系统上为 windows32 主机提取和安装了交叉编译的各种软件。例如libpng

$ ./configure --prefix=$HOME/mingw32/i686-w64-mingw32 --host=i686-w64-mingw32

要使用已安装的工具,我必须添加$HOME/mingw32/i686-w64-mingw32/bin到我的PATH环境变量中。但是,我不愿意这样做,因为这个二进制目录包含

$ ls $HOME/mingw32/i686-w64-mingw32/bin
ar g++ gcc ld nm objcopy ranlib strip # much more 

因此,我认为将交叉编译包安装到的正确位置可能是$HOME/mingw32,这样我就可以省略添加$HOME/mingw32/i686-w64-mingw32/bin到我的PATH. 但是,这不起作用,因为./configure当这些标头安装到$HOME/mingw32/include. 当我将它们安装到 时$HOME/mingw32/i686-w64-mingw32/include,它们被./configure脚本找到了。

我需要做一些特别的事情来告诉交叉编译器$HOME/mingw32/include作为内置包含路径吗?我的意思是,就像/usr/include原生编译器内置的一样。

因此,我不确定要使用的正确前缀是什么。有人可以解释正确的路径和 and 的确切含义$HOME/mingw32/$HOME/mingw32/i686-w64-mingw32

4

1 回答 1

0

使用 Cygwin MinGW-w64 安装到/usr,例如

/usr/bin/i686-w64-mingw32-gcc

所以我会推荐使用这个,或者也许/usr/local. 就包含而言,您可以像这样计算出正确的路径

$ touch a.c

$ i686-w64-mingw32-gcc -v a.c |& awk '/#include/,/End/'
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/i686-w64-mingw32/4.5.3/include
 /usr/lib/gcc/i686-w64-mingw32/4.5.3/include-fixed
 /usr/i686-w64-mingw32/sys-root/mingw/include
End of search list.

资源

于 2012-12-28T00:50:05.730 回答