开发者

Executing MSYS from cmd.exe with arguments

开发者 https://www.devze.com 2022-12-25 07:03 出处:网络
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 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 loa开发者_StackOverflow中文版d 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!


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.


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.

0

精彩评论

暂无评论...
验证码 换一张
取 消