无法识别的命令行选项 '--exclude-libs=libpthread.a' openblas mingw-w64



我正试图在windows 10系统上编译openBLAS(0.2.18)。我已经安装了mingw、msys(使用perl、gfortran等)和mingw-w64(基本上按照这里的过程)。

编译完成后,我运行得到以下错误:

gcc.exe:错误:无法识别的命令行选项'--exclude-libs=libpthread.a'

似乎"库名称可以用逗号或冒号分隔",并且不接受使用"="。因此,我试图弄清楚这个命令行选项是如何/在哪里指定的,包括在源目录中搜索"exclude"、"libpthread",以及查找各种makefile,但没有任何运气。

命令行选项语法不正确,我说得对吗?有人知道如何追踪指定的位置吗?或者有人参考make如何生成这样的命令行选项吗?

作为参考,整个命令是:

gcc -O2 -DMS_ABI -DMAX_STACK_ALLOC=2048 -Wall -m64 -DF_INTERFACE_GFORT -DSMP_SERVER -DNO_WARMUP -DMAX_CPU_NUMBER=8 -DASMNAME= -DASMFNAME=_ -DNAME=_ -DCNAME= -DCHAR_NAME="_" -DCHAR_CNAME="" -DNO_AFFINITY -I..  libopenblas.def dllinit.obj 
-shared -o ../libopenblas.dll -Wl,--out-implib,../libopenblas.dll.a 
-Wl,--whole-archive ../libopenblas_haswellp-r0.2.18.a -Wl,--no-whole-archive -Lc:/mingw/64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0 -Lc:/mingw/64/bin/../lib/gcc -Lc:/mingw/64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/lib/../lib -Lc:/mingw/64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../lib -Lc:/mingw/64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/lib -Lc:/mingw/64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../..  -lgfortran -lmingw32 -lmoldname -lmingwex -lmsvcrt -lquadmath -lm -lmingw32 -lmoldname -lmingwex -lmsvcrt -lpthread -lmingw32 -lmoldname -lmingwex -lmsvcrt  --exclude-libs=libpthread.a  -defaultlib:advapi32 -lgfortran -defaultlib:advapi32 -lgfortran

并且发生在make进入目录/c/tcm/xianyi-OpenBLAS-3f6398a/exports之后

--exclude-libs是链接器ld的一个选项。您正在将其传递给编译器。要告诉gcc将选项传递给链接器,请在其前面加上-Wl,即

-Wl,--exclude-libs=libpthread.a

正如您对正在通过的所有其他链接器选项所做的那样。

最新更新