我正在尝试在Windows 10系统上编译openBLAS(来自here的0.2.18)。我已经安装了mingw,msys(使用perl,gfortran等)和mingw-w64(基本上按照程序here)。
在编译中,我运行得到以下错误:
gcc.exe:错误:无法识别的命令行选项 '--exclude-库=的libpthreads.a'
似乎“库名称可能以逗号或冒号分隔”,并且不接受使用'='。所以我试图弄清楚如何/在哪里指定这个命令行选项,包括在源目录中搜索“exclude”,“libpthread”并查看各种makefile,没有任何运气。
我是否正确使用命令行选项没有正确的语法?有没有人有任何想法如何追踪它被指定的位置或有任何参考如何生成这样的命令行选项?
作为参考,整个命令是:
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
答案 0 :(得分:0)
--exclude-libs
是链接器ld
的选项。您正在将它传递给编译器。
要告诉gcc
将选项传递给链接器,请在其前面添加-Wl
,即
-Wl,--exclude-libs=libpthread.a
正如您所做的所有其他链接器选项一样。