【问题标题】:Compiling GNU Guile 1.8.8 with msys2: Undefined reference to '_imp__scm_shell' and '_imp__scm_boot_guile'使用 msys2 编译 GNU Guile 1.8.8:未定义对 '_imp__scm_shell' 和 '_imp__scm_boot_guile' 的引用
【发布时间】:2018-08-04 12:16:45
【问题描述】:

如果这是重复的,我深表歉意,但我无法在此网站上找到与我类似的问题。

我正在尝试在 Windows 上使用 msys2 编译 GNU Guile 1.8.8,但遇到了“_imp__scm_shell”和“_imp__scm_boot_guile”未定义的引用错误。以下是我到目前为止所采取的步骤:

  1. 安装和更新 msys2-20170918
  2. 使用 pacman 安装 base-devel、mingw-w64-i686-toolchain、mingw-w64-x86_64-toolchain、mingw-w64-i686-libtool 和 mingw-w64-x86_64-libtool
  3. 下载 GNU Guile 1.8.8
  4. 打开 msys2\mingw32.exe 并 cd 到源代码目录
  5. 运行 ./configure --disable-error-on-warning
  6. 运行 make

几分钟后,它退出并出现以下错误:

guile-guile.o: In function 'inner_main':
C:\Users\<username>\Downloads\guile-1.8.8\libguile/guile.c:53: undefined reference to '_imp__scm_shell'
guile-guile.o: In function 'main':
C:\Users\<username>\Downloads\guile-1.8.8\libguile/guile.c:63: undefined refencere to '_imp__scm_boot_guile'

这里是日志文件,如果有用的话:https://drive.google.com/open?id=1dUj8ThwZKYL1Haehq3LFu6QAzkbDqqYv

非常感谢您提供有关我做错了什么的信息。

【问题讨论】:

  • 快速搜索显示了一些历史上为 Windows 构建诡计的问题。对于已有 8 年历史的版本来说尤其如此。
  • 即使是最新版本的构建脚本也应用了许多补丁,例如github.com/Alexpux/MSYS2-packages/tree/master/guile
  • @Joe 我明白了。我想我将不得不承认失败。
  • 或者只是找出应该使用什么 DLL 来补充 scm_boot_guilescm_shell 并添加链接器标志以链接到该 DLL 的静态导入库 (.a) 文件中。
  • @DavidGrayson 我尝试在我的电脑上搜索一个,但似乎没有提到 scm_boot_guile 或 scm_shell 的 dll 文件。

标签: undefined-reference msys2 guile


【解决方案1】:

It is perfectly possible to build guile 1.8 in this environment,带有一些补丁,仅适用于 32 位。甚至还有一个可用的二进制包。

【讨论】:

    猜你喜欢
    • 2020-10-30
    • 2020-01-10
    • 1970-01-01
    • 2014-10-06
    • 2016-05-02
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 2014-04-27
    相关资源
    最近更新 更多