问题
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!
回答1:
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.
回答2:
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