I am trying to learn the wxWidgets library, using MinGW and msys to compile the code. So far so good, but I can not find a way to send a command to MSYS through CMD.exe.
I use Sublime Text to edit files, and it has an option to run makefiles. I want my makefiles to be able to open an instance of MSYS and send the g++ command and arguments to it.
Example:
Right now my makefile is:
test.exe : main.cpp
g++ -s main.cpp -o test.exe `wx-config --cxxflags` `wx-config --libs`
When mingw32-make goes to run the g++ command, it sends it to cmd.exe, which doesn't handle the back-ticks and wx-config jazz. (But the command does work when run from inside MSYS and the directory holding main.cpp)
I want to be able to use something like...
msys --command g++ -s main.cpp*...etc..*
So it will load the MSYS enviroment and run the command. Is this possible?
I am a huge makefile newbie, so if there is an easier way, please show me!
You probably want to set the shell that gmake uses to execute the commands that make up the makefile. I assume that MSYS comes with bash or even plain sh, which should do the job.
I've never managed to use wxwidgets via MSYS, though I compile all my other code that way. Several days of spelunking in the wx docs failed to find a solution and Qt is probably a better portability bet anyway.
But enough spleen. When you run msys, you are actually running a batch file that starts up the rxvt console. You really don't want to use this. Instead, just create a desktop shortcut to
C:\msys\bin\bash.exe
(or wherever your MSYS directory is) and click on that.
Once you have done that, a makefile that looks like this will understand backticks, provided the MSYS bin directory is on your Windows PATH:
foobar:
echo `ls`
What it won't do, in my experience is compile wx.
来源:https://stackoverflow.com/questions/2546757/executing-msys-from-cmd-exe-with-arguments