【问题标题】:Executing MSYS from cmd.exe with arguments使用参数从 cmd.exe 执行 MSYS
【发布时间】:2011-02-02 13:21:09
【问题描述】:

我正在尝试学习wxWidgets 库,使用MinGW 和msys 来编译代码。到目前为止一切顺利,但我找不到通过 CMD.exe 向 MSYS 发送命令的方法。

我使用Sublime Text 来编辑文件,它有一个运行makefile 的选项。我希望我的 makefile 能够打开 MSYS 实例并向其发送 g++ 命令和参数。

示例:
现在我的makefile是:

test.exe : main.cpp
        g++ -s main.cpp -o test.exe `wx-config --cxxflags` `wx-config --libs`

当 mingw32-make 去运行 g++ 命令时,它会将它发送到不处理反引号和 wx-config jazz 的 cmd.exe。 (但是当从 MSYS 内部和保存 main.cpp 的目录中运行时,该命令确实有效)

我希望能够使用类似...的东西

msys --command g++ -s main.cpp*...etc..*

所以它会加载 MSYS 环境并运行命令。这可能吗?

我是一个巨大的makefile新手,所以如果有更简单的方法,请告诉我!

【问题讨论】:

    标签: c++ makefile wxwidgets mingw msys


    【解决方案1】:

    我从未设法通过 MSYS 使用 wxwidgets,尽管我以这种方式编译所有其他代码。在 wx 文档中进行了几天的探索未能找到解决方案,无论如何 Qt 可能是一个更好的可移植性赌注。

    但足够的脾脏。当你运行 msys 时,你实际上是在运行一个启动 rxvt 控制台的批处理文件。你真的不想用这个。相反,只需创建一个桌面快捷方式

    C:\msys\bin\bash.exe
    

    (或您的 MSYS 目录所在的任何位置)并单击它。

    完成此操作后,如果 MSYS bin 目录位于您的 Windows PATH 上,看起来像这样的 makefile 将理解反引号:

    foobar:
        echo `ls`
    

    根据我的经验,它不会做的是编译 wx。

    【讨论】:

      【解决方案2】:

      您可能希望set the shell that gmake uses 执行构成makefile 的命令。我假设 MSYS 带有 bash 甚至是普通的 sh,应该可以完成这项工作。

      【讨论】:

      • 如果我将 bash.exe 设置为我的 shell,然后回到我的文本编辑器并运行 make,我得到:“/bin/bash: /A: No such file or directory” 我也有将wx-config 行更改为/c/wxWidgets2.8.10/wx-config ---因此通过该更改我可以加载bash.exe,手动导航到目录,执行mingw32-make,一切都很好。我认为由于某种原因,当通过文本编辑器执行时,它没有得到正确的工作目录。
      • 抱歉在字里行间阅读!我设置实际外壳而不是 MAKESHELL 变量的错误。谢谢!一切正常。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多