gpt4 book ai didi

haskell - 在GHC中指定arch?

转载 作者:行者123 更新时间:2023-12-02 07:32:30 24 4
gpt4 key购买 nike

我正在编写一个多平台 ncurses 文本冒险游戏。所需的 C 库 ncursesw 已配置为 x86,但我的操作系统是 Mac OS X 10.6.6 x86_64。

ghc --make -o rogue rogue.hs
[1 of 2] Compiling Dungeon ( Dungeon.hs, Dungeon.o )
[2 of 2] Compiling Main ( rogue.hs, rogue.o )
Linking rogue ...
ld: warning: in /usr/local/lib/libncursesw.dylib, file was built for unsupported file format which is not the architecture being linked (i386)

我认为强制编译 x86 比说服 Homebrew、MinGW 和 Aptitude 存储库包含 x86_64 ncursesw 库要容易得多。

是否有一个命令行选项可以传递给 ghc 来指定架构,类似于 GCC 的 -march

最佳答案

看起来您的 ghc 配置为 32 位 (i386),而 ncurses 库是 64 位 (x86-64)。我相信最新的 Haskell 平台 (2011.2.x.x) 使用 64 位 ghc,而早期版本提供 32 位 ghc。

如果您使用的是较早版本的 HP,升级到最新版本可能足以解决此问题。

不幸的是,ghc 不是 native 交叉编译器,您无法通过标志设置体系结构或字大小。对于要使用的每个架构,您都需要一个单独的 ghc,并且您还需要确保链接的所有库都与其匹配。

(顺便说一句,x86 不足以区分架构,因为它可以指 32 位或 64 位。通常它指的是 32 位版本,但并不总是如此。至少在 OSX 10.6 上对于 XCode 3,gcc 将其视为无效的 -march 值而拒绝)

关于haskell - 在GHC中指定arch?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5535728/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com