继续 here ,我正在尝试在 Cygwin 中使用 GCC 构建 64 位 GSL。
对
./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 制造2 : 进入目录`/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
遵循建议 here ,我决定在
./siman/.libs
目录下的libgslsiman.a
文件上运行一个ranlib
。由于这不起作用,我还尝试通过调用ar -t libgslsiman.a
自行打包它。
但是,这会导致相同的错误。
最佳答案
您手动强制使用交叉编译器。但是,构建工具链的其余部分仍将默认为 32 位 Cygwin 版本,而不是 64 位 MinGW 版本。
不是设置 CC=...
,而是将 --host x86_64-w64-mingw32
传递给 ./configure
以指定主机环境(即图书馆将被使用的地方)。
关于c - 使错误 : Building 64-bit GSL in Cygwin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16977948/