我正在尝试在Windows 10系统上编译openBLAS(来自here的0.2.18)。我已经安装了mingw,msys(带有perl,gfortran等)和mingw-w64(基本上根据here过程安装)。
好了,进入编译,我运行得到以下错误:
gcc.exe: error: unrecognized command line option '--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
就像您正在处理的所有其他链接器选项一样。
关于gcc - 无法识别的命令行选项 '--exclude-libs=libpthread.a' openblas mingw-w64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37817330/