首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用MinGW-w64与Cygwin?

如何使用MinGW-w64与Cygwin?
EN

Stack Overflow用户
提问于 2012-05-08 05:56:11
回答 2查看 15.6K关注 0票数 13

MinGW-w64至少从2010年12月开始就可以使用Cygwin了。然而,我很难用它来编译几乎任何东西。我已经用替代方案设置了符号链接

代码语言:javascript
复制
p=x86_64-w64-mingw32
alternatives \
    --install /usr/bin/gcc.exe gcc /usr/bin/$p-gcc.exe 0 \
    --slave /usr/bin/ar.exe ar /usr/bin/$p-ar.exe

例如,如果我试图编译wget

代码语言:javascript
复制
./configure --without-ssl
make

错误(为简洁而编辑)

代码语言:javascript
复制
connect.o:connect.c:(.text+0x3f): undefined reference to `__imp_htons'
connect.o:connect.c:(.text+0xbe7): undefined reference to `__imp_ntohs'
connect.o:connect.c:(.text+0xd96): undefined reference to `run_with_timeout'

如果我用

  • MinGW壳与MinGW gcc
  • Cygwin外壳与天鹅gcc (gcc4-core)

那么Wget将编译。

基于ak2的回答,这似乎是可行的

代码语言:javascript
复制
./configure --host=x86_64-w64-mingw32 --disable-ipv6 --without-ssl
make
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-01 01:35:18

ak2部分是不正确的,正如声明的这里

正确的选项是--host=x86_64-w64-mingw32,正如您所发现的。--target用于构建交叉编译器本身。备选方案如下:

  • --build:你在建立什么?
  • --host:你要为什么而建
  • --target:如果您正在构建的是一个交叉编译器,那么跨编译器的目的是什么?
票数 23
EN

Stack Overflow用户

发布于 2012-05-08 07:27:00

Cygwin的MinGW-w64编译器是一个交叉编译器,因为它托管在Cygwin上,但目标是MinGW-w64。您只需使用configure选项告诉--target,如下所示:

代码语言:javascript
复制
--target=x86_64-w64-mingw32

这样,make将调用适当的工具。您还需要安装或构建要构建的包所依赖的任何库的MinGW-w64版本。

在MinGW-w64的/usr/bin点将替代系统中的工具弯曲到MinGW-W64上并不是一个好主意,因为那样的话,您将使用带有Cygwin和库的MinGW工具,这会导致像上面引用的那些错误。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10493297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档