我试图在windows 10系统上编译openBLAS (从这里编译0.2.18)。我已经安装了mingw、msys (使用perl、gfortran等)和mingw-w64 (基本上按照过程这里)。
在编译过程中,我运行了以下错误:
gcc.exe: error:未识别的命令行选项‘
似乎“库名可以用逗号或冒号分隔”,并且不接受使用'=‘。因此,我试图弄清楚命令行选项是如何/在哪里指定的,包括在源目录中搜索"exclude“、”libp线程“,以及查看各种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目录后发生。
发布于 2016-06-15 08:18:20
--exclude-libs是链接器ld的一个选项。您将它传递给编译器。若要告诉gcc将该选项传递给链接器,请将其前缀为-Wl,即
-Wl,--exclude-libs=libpthread.a就像您已经做了所有其他链接器选项,您正在通过。
https://stackoverflow.com/questions/37817330
复制相似问题