【问题标题】:make error: Building 64-bit GSL in Cygwin出错:在 Cygwin 中构建 64 位 GSL
【发布时间】:2013-06-07 06:50:53
【问题描述】:

here 开始,我正在尝试在 Cygwin 中使用 GCC 构建 64 位 GSL。

  1. ./configure (CC=x86_64-w64-mingw32-gcc CFLAGS=-m64 ./configure) 的调用正常,但在成功处理整个文件夹负载后,对make install 的调用结果在

    ./.libs/libgslsiman.a:无法读取符号:存档没有索引;运行ranlib添加一个

    collect2: ld 返回 1 个退出状态

    Makefile:326:目标“siman_tsp.exe”的配方失败

    导致此问题的完整调用是

    一切尽在 siman make2: 进入目录`/cygdrive/f/programming/c/libraries/gslCompiled/gsl-1.15/siman'

    /bin/sh ../libtool --tag=CC --mode=link x86_64-w64-mingw32-gcc -m64 -o siman_tsp.exe siman_tsp.o libgslsiman.la ../rng/libgslrng.la . ./ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../sys/libgslsys.la ../utils/libutils.la -lm

    libtool:链接:x86_64-w64-mingw32-gcc -m64 -o .libs/siman_tsp.exe siman_tsp.o ./.libs/libgslsiman.a ../rng/.libs/libgslrng.a ../ieee -utils/.libs/libgslieeeutils.a ../err/.libs/libgslerr.a ../sys/.libs/libgslsys.a ../utils/.libs/libutils.a

  2. 根据here 的建议,我决定在./siman/.libs 文件的./siman/.libs 目录中运行ranlib。由于这不起作用,我还尝试通过调用ar -t libgslsiman.a 自己打包它。

但是,这会导致相同的错误。

【问题讨论】:

    标签: c gcc cygwin gsl unix-ar


    【解决方案1】:

    您手动强制使用交叉编译器。但是,构建工具链的其余部分仍将默认为 32 位 Cygwin 版本,而不是 64 位 MinGW 版本。

    不要设置CC=...,而是将--host x86_64-w64-mingw32 传递给./configure 以指定主机环境(即要使用库的位置)。

    【讨论】:

    • 好的,太好了。所以它在后台愉快地编译。它确实要求我重新考虑--host--build 之间的选择。你能评论一下区别吗?
    • 哦,为什么不呢。我要问另一个菜鸟问题。一旦我完成了make install,我猜lib 文件夹是.libs,但是include 文件夹在哪里?我应该只创建一个名为 include 的文件夹,其中包含我可以在 GSL 文件夹中找到的所有头文件吗?
    • 好的,用--prefix 重新制作它。谢谢你的帮助。 :)
    • @fgnu:将--build 设置为i686-pc-cygwin 应该会使警告消失;另请参阅 stackoverflow.com/questions/5139403/… 了解 hostbuild 之间的区别
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-02
    • 1970-01-01
    相关资源
    最近更新 更多