Arhn - архитектура программирования

gmake с использованием sh.exe вызывает ошибки сборки

У меня есть make-файл, который работает в системе Windows, когда sh.exe отсутствует в пути. Но когда sh.exe находится на пути Windows, он останавливается с ошибкой. Судя по всему, sh.exe не может обрабатывать пути со смешанными / и \, такие как этот:

 cc $CFLAGS) C:\a\b/c/d/myfile.c

выдает следующую ошибку

 Fatal error: could not open source file "c:ab/c/d/myfile.c"

Поскольку я не могу изменить make-файл (он автоматически генерируется каким-то приложением), как я могу заставить gmake не использовать sh.exe или заставить sh.exe принимать такие файлы?

30.09.2013

  • Можете ли вы изменить свой путь так, чтобы cmd находился перед sh? Это среда cygwin? 30.09.2013
  • @AdamBurry: Нет, я не могу изменить путь, так как я разрабатываю систему, которая должна работать в системе клиента, и я не могу изменить путь в системе клиента. Нет, я разрабатываю в среде TI. 30.09.2013
  • как насчет gmake SHELL="cmd"? gnu.org/software/ сделать/вручную/html_node/ 30.09.2013
  • @AdamBurry: я безуспешно пытался установить переменную среды SHELL. Я даже поместил SHELL=cmd в файл make для проверки, но безуспешно. 30.09.2013
  • @AdamBurry: Спасибо, сработало. Пожалуйста, добавьте свой комментарий в качестве ответа, и я приму его. 01.10.2013

Ответы:


1

Попробуйте gmake SHELL="cmd". См. документацию GNU make для получения дополнительной информации. В частности, обратите внимание на этот лакомый кусочек:

Обратите внимание, что этот расширенный поиск оболочки ограничен случаями, когда SHELL устанавливается из Makefile; если он установлен в среде или командной строке, ожидается, что вы установите для него полный путь к оболочке, точно так же, как в Unix.

01.10.2013
  • В том же документе также говорится, что в отличие от большинства переменных переменная SHELL никогда не устанавливается из среды. Это связано с тем, что переменная среды SHELL используется для указания вашего личного выбора программы-оболочки для интерактивного использования. Было бы очень плохо, если бы подобные личные решения повлияли на работу make-файлов. См. Переменные из среды. ВТФ?? 10.04.2018
  • @antred Вопрос был о gmake в системе Windows. В этом случае gmake по-разному обрабатывает переменную SHELL. В частности, Однако в MS-DOS и MS-Windows используется значение SHELL в среде, поскольку в этих системах большинство пользователей не задают эту переменную, и поэтому она, скорее всего, специально задана для использования make. 17.04.2018
  • О, я не жаловался на твой ответ. Я просто озадачен документацией GNU Make по этому вопросу, которая, на мой взгляд, просто противоречит сама себе. 17.04.2018
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..