使用参数从cmd.exe执行MSYS

时间:2010-03-30 16:12:09

标签: c++ makefile wxwidgets mingw msys

我正在尝试学习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 ++命令时,它会将其发送到cmd.exe,后者无法处理后退和wx-config爵士乐。 (但是当从MSYS内部和持有main.cpp的目录运行时,该命令可以正常工作)

我希望能够使用像...这样的东西。

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

因此它将加载MSYS环境并运行命令。这可能吗?

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

2 个答案:

答案 0 :(得分:4)

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

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

C:\msys\bin\bash.exe

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

完成后,如果MSYS bin目录在Windows PATH上,那么看起来像这样的makefile将理解反引号:

foobar:
    echo `ls`

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

答案 1 :(得分:2)

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