2010-03-30 4 views
3

Я пытаюсь изучить библиотеку wxWidgets, используя MinGW и msys для компиляции кода. Пока все хорошо, но я не могу найти способ отправить команду MSYS через CMD.exe.Выполнение MSYS из cmd.exe с аргументами

Я использую Sublime Text для редактирования файлов, и у него есть возможность запуска make-файлов. Я хочу, чтобы мои make-файлы могли открывать экземпляр MSYS и отправлять ему команду g ++ и аргументы.

Пример:
Сейчас моя Makefile является:

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

Когда mingw32-сделайте идет запустить команду г ++, он посылает его в cmd.exe, который не обрабатывает обратные тиков и wx-config jazz. (Но команда не работает при запуске из внутри MSYS и каталог с main.cpp)

Я хочу, чтобы иметь возможность использовать что-то вроде ...

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

Так будет загружать окружающую среду для MSYS и выполните команду. Это возможно?

Я - огромный макияж, но если есть более простой способ, пожалуйста, покажи мне!

ответ

2

Возможно, вы хотите, чтобы set the shell that gmake uses выполнял команды, составляющие make-файл. Я предполагаю, что MSYS поставляется с bash или даже простой sh, которая должна выполнять эту работу.

+0

Если я установил bash.exe в качестве моей оболочки, вернитесь к текстовому редактору и запустите make, я получаю: «/ bin/bash:/A: Нет такого файла или каталога» Мне также пришлось изменить ' wx-config' для чтения '/ c/wxWidgets2.8.10/wx-config' --- поэтому с этим изменением я могу загрузить bash.exe, вручную перейти в каталог, выполнить mingw32-make и все в порядке. Я думаю, что по какой-то причине, когда он выполняется через текстовый редактор, он не получает правильный рабочий каталог. –

+0

Извините за чтение между линиями! Моя ошибка устанавливает фактическую оболочку вместо переменной MAKESHELL. Благодаря! Все работает. –

4

Мне никогда не удавалось использовать wxwidgets через MSYS, хотя я скомпилировал весь свой код. Несколько дней обработки в wx-документах не смогли найти решение, и Qt, вероятно, является лучшей переносимостью в любом случае.

Но достаточно селезенки. Когда вы запускаете msys, на самом деле вы запускаете командный файл, запускающий консоль rxvt. Вы действительно не хотите использовать это. Вместо этого просто создайте ярлык на рабочем столе до

C:\msys\bin\bash.exe 

(или везде, где находится ваш каталог MSYS) и нажмите на него.

После того, как вы сделали это, также файл, который выглядит, как это будет понимать кавычку, при условии, что каталог MSYS бен на вашем PATH Windows:

foobar: 
    echo `ls` 

Что он не будет делать, на мой опыт компиляции WX.

Смежные вопросы