继续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'的配方失败
造成这种情况的完整电话是
全力以赴 make 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:link: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,我决定在ranlib
文件的./siman/.libs
目录中运行libgslsiman.a
。由于这不起作用,我还试图通过调用ar -t libgslsiman.a
来自行打包。
但是,这会导致相同的错误。
答案 0 :(得分:1)
您手动强制使用交叉编译器。但是,构建工具链的其余部分仍将默认为32位Cygwin版本,而不是64位MinGW版本。
不是设置CC=...
,而是将--host x86_64-w64-mingw32
传递给./configure
以指定主机环境(即将使用库的位置)。