【问题标题】:GHC - Linking errors when compiling projects with the ncurses-0.2 libraryGHC - 使用 ncurses-0.2 库编译项目时出现链接错误
【发布时间】:2011-03-15 05:44:50
【问题描述】:

我正在尝试使用来自 hackage 的 ncurses-0.2 库,但是每当我尝试使用 cabal 编译我的项目时。我收到链接器错误,安装和执行步骤如下

我在 Mac OS X Snow Leopard 上,使用 Haskell Platform 2010.02

您对解决这个问题有什么见解或建议吗?

$ brew install ncursesw --universal 警告:您似乎安装了 MacPorts 或 Fink。 已知随 MacPorts 和 Fink 安装的软件会导致问题。 如果您遇到问题,请尝试卸载这些工具。 ==> 下载 http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.7.ta​​r.gz 文件已下载并缓存到 /Users/roman/Library/Caches/Homebrew ==> ./configure --prefix=/Users/roman/.homebrew/Cellar/ncursesw/5.7 --mandir=/Users/roman/.homebrew/Cellar/ncursesw/5.7/share/man --disable-debug - -禁用依赖跟踪--e ==> 进行安装 /Users/roman/.homebrew/Cellar/ncursesw/5.7:2734 个文件,14M,93 秒 $ cabal install ncurses --extra-include-dirs=/Users/roman/.homebrew/include --extra-lib-dirs=/Users/roman/.homebrew/lib --reinstall 解决依赖关系... 正在配置 ncurses-0.2... 预处理库 ncurses-0.2... 构建 ncurses-0.2... [1 of 4] 编译 UI.NCurses.Enums ( dist/build/UI/NCurses/Enums.hs, dist/build/UI/NCurses/Enums.o ) [2 of 4] 编译 UI.NCurses.Types ( UI/NCurses/Types.hs, dist/build/UI/NCurses/Types.o ) [3 of 4] 编译 UI.NCurses ( dist/build/UI/NCurses.hs, dist/build/UI/NCurses.o ) [4 of 4] 编译 UI.NCurses.Panel ( dist/build/UI/NCurses/Panel.hs, dist/build/UI/NCurses/Panel.o ) UI/NCurses/Panel.chs:49:0: 警告:“UI.NCurses”的导入是多余的 除了可能从“UI.NCurses”导入实例 要单独导入实例,请使用: import UI.NCurses() 正在注册 ncurses-0.2... 在 /Users/roman/.cabal/lib/ncurses-0.2/ghc-6.12.3 中安装库 正在注册 ncurses-0.2... $ 阴谋集团 TicTacToe-0.1 的预处理可执行文件... 构建井字游戏-0.1... 正在链接 dist/build/TicTacToe/TicTacToe ... ld:警告:在 /Users/roman/.homebrew/lib/libncursesw.dylib 中,文件是为不受支持的文件格式构建的,它不是被链接的体系结构 (i386) 未定义的符号: “_start_color”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _s9ZP_info “_wget_wch”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _sfkI_info “_wenclose”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _s9Fs_info “_beep”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _ncurseszm0zi2_UIziNCurses_beep1_info (maybe you meant: _ncurseszm0zi2_UIziNCurses_beep2_closure, _ncurseszm0zi2_UIziNCurses_beep1_srt , _ncurseszm0zi2_UIziNCurses_beep_srt , _ncurseszm0zi2_UIziNCurses_beep3_info , _ncurseszm0zi2_UIziNCurses_beep2_srt , _ncurseszm0zi2_UIziNCurses_beep3_srt , _ncurseszm0zi2_UIziNCurses_beep1_closure , _ncurseszm0zi2_UIziNCurses_beep_info , _ncurseszm0zi2_UIziNCurses_beep1_info , _ncurseszm0zi2_UIziNCurses_beep3_closure , _ncurseszm0zi2_UIziNCurses_beep2_info , _ncurseszm0zi2_UIziNCurses_beep_closure ) “_echo”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _sc50_info (也许你的意思是:___hscore_echo) “_can_change_color”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _ncurseszm0zi2_UIziNCurses_canDefineColor1_info “_init_color”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _s97K_info libHSncurses-0.2.a(NCurses.o) 中的 _scw2_info “_wnoutrefresh”,引用自: _s2JC_info 在 NCurses.o libHSncurses-0.2.a(NCurses.o) 中的 _scSh_info “_noraw”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _scaE_info “_wtouchln”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _sd53_info libHSncurses-0.2.a(NCurses.o) 中的 _sd53_info “_wcolor_set”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _sav6_info “_meta”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _s9KC_info libHSncurses-0.2.a(NCurses.o) 中的 _scV2_info “_initscr”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _ncurseszm0zi2_UIziNCurses_runCurses2_info “_stdscr”,引用自: _stdscr$non_lazy_ptr 在 NCurses.o libHSncurses-0.2.a(NCurses.o) 中的 _stdscr$non_lazy_ptr (也许你的意思是:_stdscr$non_lazy_ptr) “_wbkgrndset”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _scOA_info “_raw”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _scaE_info (也许你的意思是:_ffi_closure_raw_SYSV$non_lazy_ptr、_ffi_closure_raw_SYSV、_ffi_raw_call、_ffi_prep_raw_closure_loc) “__nc_has_mouse”,引用自: libHSncurses-0.2.a(hsncurses-shim.o) 中的 _hsncurses_has_mouse “_wtimeout”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _s9KE_info libHSncurses-0.2.a(NCurses.o) 中的 _scV4_info libHSncurses-0.2.a(NCurses.o) 中的 _sfkG_info “_doupdate”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _ncurseszm0zi2_UIziNCurses_render1_info “_baudrate”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _ncurseszm0zi2_UIziNCurses_baudrate1_info (maybe you meant: _ncurseszm0zi2_UIziNCurses_baudrate1_info, _ncurseszm0zi2_UIziNCurses_baudrate_info , _ncurseszm0zi2_UIziNCurses_baudrate3_closure , _ncurseszm0zi2_UIziNCurses_baudrate_closure , _ncurseszm0zi2_UIziNCurses_baudrate_srt , _ncurseszm0zi2_UIziNCurses_baudrate2_info , _ncurseszm0zi2_UIziNCurses_baudrate2_closure , _ncurseszm0zi2_UIziNCurses_baudrate1_closure , _ncurseszm0zi2_UIziNCurses_baudrate3_info , _ncurseszm0zi2_UIziNCurses_baudrate1_srt , _ncurseszm0zi2_UIziNCurses_baudrate2_srt , _ncurseszm0zi2_UIziNCurses_baudrate3_srt ) “_whline_set”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _s9gs_info “_wvline_set”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _s9fL_info “_cbreak”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _s9ZJ_info libHSncurses-0.2.a(NCurses.o) 中的 _sc7P_info “_endwin”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _ncurseszm0zi2_UIziNCurses_endwin_info (也许你的意思是:_ncurseszm0zi2_UIziNCurses_endwin_info,_ncurseszm0zi2_UIziNCurses_endwin_closure) “_wattr_on”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _saal_info libHSncurses-0.2.a(NCurses.o) 中的 _saal_info libHSncurses-0.2.a(NCurses.o) 中的 _saal_info libHSncurses-0.2.a(NCurses.o) 中的 _saal_info libHSncurses-0.2.a(NCurses.o) 中的 _saal_info libHSncurses-0.2.a(NCurses.o) 中的 _saal_info libHSncurses-0.2.a(NCurses.o) 中的 _saal_info libHSncurses-0.2.a(NCurses.o) 中的 _saal_info libHSncurses-0.2.a(NCurses.o) 中的 _saal_info “_newwin”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _s9du_info “_getmouse”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _sfkP_info “_touchwin”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _sa69_info “_untouchwin”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _sa6c_info “_has_colors”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _ncurseszm0zi2_UIziNCurses_supportsColor1_info libHSncurses-0.2.a(NCurses.o) 中的 _s9ZN_info “_mousemask”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _s9ZL_info “_use_default_colors”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _s9ZS_info “_waddwstr”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _sduP_info “_wmove”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _sdBo_info “_dupwin”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _scTH_info “_keypad”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _ncurseszm0zi2_UIziNCurses_zdwa3_info libHSncurses-0.2.a(NCurses.o) 中的 _say8_info libHSncurses-0.2.a(NCurses.o) 中的 _say8_info libHSncurses-0.2.a(NCurses.o) 中的 _scV0_info “_noecho”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _sc50_info “_flash”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _ncurseszm0zi2_UIziNCurses_flash1_info (maybe you meant: _ncurseszm0zi2_UIziNCurses_flash1_closure, _ncurseszm0zi2_UIziNCurses_flash_info , _ncurseszm0zi2_UIziNCurses_flash_srt , _ncurseszm0zi2_UIziNCurses_flash_closure , _ncurseszm0zi2_UIziNCurses_flash1_info , _ncurseszm0zi2_UIziNCurses_flash2_info , _ncurseszm0zi2_UIziNCurses_flash3_closure , _ncurseszm0zi2_UIziNCurses_flash1_srt , _ncurseszm0zi2_UIziNCurses_flash2_srt , _ncurseszm0zi2_UIziNCurses_flash2_closure , _ncurseszm0zi2_UIziNCurses_flash3_info , _ncurseszm0zi2_UIziNCurses_flash3_srt ) “_wborder_set”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _scFt_info “_COLS”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _COLS$non_lazy_ptr (也许你的意思是:_COLS$non_lazy_ptr) “_init_pair”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _saTg_info libHSncurses-0.2.a(NCurses.o) 中的 _saTg_info libHSncurses-0.2.a(NCurses.o) 中的 _saTg_info libHSncurses-0.2.a(NCurses.o) 中的 _saTg_info libHSncurses-0.2.a(NCurses.o) 中的 _saTg_info libHSncurses-0.2.a(NCurses.o) 中的 _saTg_info libHSncurses-0.2.a(NCurses.o) 中的 _saTg_info libHSncurses-0.2.a(NCurses.o) 中的 _saTg_info libHSncurses-0.2.a(NCurses.o) 中的 _scdx_info libHSncurses-0.2.a(NCurses.o) 中的 _scdx_info libHSncurses-0.2.a(NCurses.o) 中的 _scdx_info libHSncurses-0.2.a(NCurses.o) 中的 _scdx_info libHSncurses-0.2.a(NCurses.o) 中的 _scdx_info libHSncurses-0.2.a(NCurses.o) 中的 _scdx_info libHSncurses-0.2.a(NCurses.o) 中的 _scdx_info libHSncurses-0.2.a(NCurses.o) 中的 _scdx_info “_nocbreak”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _sc7P_info “_delwin”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _sb4T_info “_getcurx”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _s9Iy_info “_getcury”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _s9Ix_info “_color_content”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _sff4_info “_COLOR_PAIRS”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _COLOR_PAIRS$non_lazy_ptr (也许你的意思是:_COLOR_PAIRS$non_lazy_ptr) “_wattr_get”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _s9vO_info “_wattr_off”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _saaF_info libHSncurses-0.2.a(NCurses.o) 中的 _saaF_info libHSncurses-0.2.a(NCurses.o) 中的 _saaF_info libHSncurses-0.2.a(NCurses.o) 中的 _saaF_info libHSncurses-0.2.a(NCurses.o) 中的 _saaF_info libHSncurses-0.2.a(NCurses.o) 中的 _saaF_info libHSncurses-0.2.a(NCurses.o) 中的 _saaF_info libHSncurses-0.2.a(NCurses.o) 中的 _saaF_info libHSncurses-0.2.a(NCurses.o) 中的 _saaF_info “_wattr_set”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _s9vS_info “_LINES”,引用自: libHSncurses-0.2.a(NCurses.o) 中的 _LINES$non_lazy_ptr (也许你的意思是:_LINES$non_lazy_ptr) ld:未找到符号 collect2: ld 返回 1 个退出状态

【问题讨论】:

  • 您的问题是answered already on Haskell Cafe。这就是交叉发布的问题......所以请不要。
  • 是的,交叉发布是不好的形式。但我想如果我在不同的论坛上提问,我更有可能找到答案。

标签: haskell linker-errors ncurses


【解决方案1】:

此问题已在 Haskell-Café 中得到解答

链接:

http://groups.google.com/group/haskell-cafe/browse_thread/thread/b021f338ed2ba738#

【讨论】:

  • 问题中的详细信息由 Haskell Cafe 回答,但最近的帖子得出结论:“我不确定自制软件的对应物是什么。”这不能回答我的问题。事实上,它重申了这一点。问? -> 问。
  • 试过了。 x64 版本给 Mac OS X 带来了更多问题。
猜你喜欢
  • 2015-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多