【问题标题】:MinGW32 make command on windowsMinGW32在Windows上制作命令
【发布时间】:2016-05-31 22:42:01
【问题描述】:

我正在尝试使用 MingW32 和 cmake 在 windows 上安装模拟软件。

我使用后遇到的问题:

cmake .. -DCMAKE_INSTALL_PREFIX="/cygdrive/c/Gromacs467" -DGMX_X11=OFF -DGMX_GPU=OFF -DGMX_MPI=OFF -DGMX_PREFER_STATIC_LIBS=ON -DGMX_CPU_ACCELERATION=SSE2 -DBUILD_SHARED_LIBS=NO -DGMX_BUILD_OWN_FFTW=ON -VMDDIR="C:\Program Files (x86)\University of Illinois\VMD"  -G "MinGW Makefiles"

来自 Microsoft Visual Studio,(否则我会遇到其他问题)。

然后我启动一个 MinGW 控制台并转到创建我的 Makefile 的目录,然后输入命令 make,这就是我得到的:

c:\Temp\gromacs-4.6.7\cmake_build>make
Microsoft Windows [Version 10.0.10586]
(c) 2015 Microsoft Corporation. All rights reserved.

自然而然,make 命令并没有真正执行。为什么我得到windows版本?不知道....

有趣的是,如果我多次输入,MniGW32 控制台的名称会更改为在末尾添加 make,并且以后会继续这样做。

make --version 给出了正常的输出,所以我不明白问题出在哪里。

c:\Temp\gromacs-4.6.7\cmake_build>make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i686-pc-msys

【问题讨论】:

  • 执行的内容取决于您的当前目录,然后是PATH 环境变量。是否都使用同一个控制台运行,而不是使用 Visual Studio 的“开发人员命令提示符”?

标签: windows cmake mingw32


【解决方案1】:

如果您使用cmake ... -G "MinGW Makefiles",则需要致电mingw32-make

只是一个提示:我假设您之前使用 Cygwin 构建,而对于 MinGW32,它应该是 -DCMAKE_INSTALL_PREFIX="/c/Gromacs467" 而不是 -DCMAKE_INSTALL_PREFIX="/cygdrive/c/Gromacs467"

参考文献

【讨论】:

    【解决方案2】:

    您可以让 CMake 使用以下语法为您调用构建,而不是直接调用 make

    cmake --build <build-dir> --target <target-name> --config <build-type>
    

    --target--config 参数是可选的,&lt;build-dir&gt; 必须指向 CMake 项目的构建目录。以这种方式调用构建的主要优点是 CMake 已经确定了构建工具,并且知道在哪里可以找到它以及如何正确调用它。以这种方式通过 CMake 调用您的构建可能会更加健壮。

    --build 选项的基本 CMake 文档here 和一些相关材料可以在this blog post 中找到,特别是“抽象出构建工具”部分(披露:我写了博客文章)。

    【讨论】:

      猜你喜欢
      • 2021-07-20
      • 1970-01-01
      • 2019-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-09
      • 2014-09-10
      相关资源
      最近更新 更多