通过`add_subdirectory`添加的库面对“编译时没有规则可用于创建目标。”错误

问题描述 投票:0回答:1

我正在尝试清理legacy C-FORTRAN FLOSS code,并且遇到了一个非常奇怪的错误。通过add_subdirectory中的top CMakeLists.txt file添加了一些库/文件夹。在CMakeLists.txt文件夹中运行cmake ..命令会成功生成build(除了MakeFile可能为假阳性)。但是,当使用some minor warnings进行编译时,出现了一个严重的错误:

扫描目标umfpack的依赖项mingw32-make [2]:离开目录'/ path / to / elmerfem / build'mingw32-make [2]:输入目录'/ path / to / elmerfem / build'[46%]构建C对象umfpack / src / umfpack / CMakeFiles / umfpack.dir / umfpack_timer.c.omingw32-make [2]:***没有规则来建立目标'/mingw64/include/cblas.h',这是'umfpack / src / umfpack / CMakeFiles / umfpack.dir / umfpack_tictoc.c.o'所需要的。停止。mingw32-make [2]:离开目录'/ path / to / elmerfem / build'mingw32-make [1]:*** [CMakeFiles / Makefile2:265:umfpack / src / umfpack / CMakeFiles / umfpack.dir / all]错误2mingw32-make [1]:离开目录'/ path / to / elmerfem / build'mingw32-make:*** [Makefile:163:全部]错误2

我不知道如何调试。在这种情况下,make存在,并且先前的CMake输出:

-寻找Fortran sgemm-寻找Fortran sgemm-找到-找到了BLAS:/mingw64/lib/libopenblas.dll.a-寻找Fortran Cheev-寻找Fortran Cheev-找到-找到具有LAPACK API的库。--------------------------------------------------BLAS库:/mingw64/lib/libopenblas.dll.a-LAPACK库:/mingw64/lib/libopenblas.dll.a

显示已成功找到/mingw64/include/cblas.hBLAS

如果您能帮助我知道问题所在以及如何解决,我将不胜感激。感谢您的提前支持。

环境是:

  • MSYS2:MSYS_NT-10.0-18363
  • Windows版本1909
  • cmake版本3.15.5
  • GNU Make 4.3
  • gcc.exe(Rev1,由MSYS2项目构建)9.3.0

P.S.1。我刚刚在macOS上测试了代码,并且编译时没有问题。因此,这似乎是Windows / MSYS2特定的问题。

P.S.2。有人告诉我应该安装LAPACK库,所以我这样做了

suitesparse

没有帮助。

P.S.3。同样在 pacman -S mingw64/mingw-w64-x86_64-suitesparse 之后,我应该阐明我正在使用MSYS2的CMake和GNU Make软件包,如this Tweethere所述。

cmake compiler-errors msys2
1个回答
1
投票

运行here(不是mingw64.exe)。

请确保安装以下软件包:msys2.exemingw-w64-x86_64-cmakemingw-w64-x86_64-make和C / C ++,Fortran编译器。

注意:所有已安装的软件包都必须在mingw64目录中。

更改CMakeLists.txt中的mingw-w64-x86_64-suitesparse值:

WITH_MPI

查找cmake的路径并使用以下命令进行制作:SET(WITH_MPI FALSE ... $ where cmake.exe

为简单起见,请使用$ where mingw32-make.exe命令:

alias

在Elmer存储库中创建build目录,然后:

alias my_cmake=/d/msys64/mingw64/bin/cmake.exe
alias my_make=/d/msys64/mingw64/bin/mingw32-make.exe
© www.soinside.com 2019 - 2024. All rights reserved.