Странная проблема с командой MinGW make (с muParser)? - PullRequest
4 голосов
/ 10 сентября 2011

У меня самая странная проблема при попытке собрать и установить muParser на моем компьютере с Windows.Как следует из руководства по установке, я просто захожу в папку для сборки и запускаю

make -f makefile.mingw

Это должно быть хорошо, и это стандартная процедура.Тем не менее, я не вижу смысла в выводе команды:

if not exist obj\gcc_static_rel mkdir obj\gcc_static_rel
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\Chase\Desktop\muparser_v2_0_0\muparser_v2_0_0\build>

Теперь ... в этот момент я действительно запутался.Потому что, согласно заголовку окна командной строки, я все еще ВНУТРИ команды make.Итак, я набираю «exit» в «подсказке»

g++ -c -o obj\gcc_static_rel\muParser_lib_muParser.o -DNDEBUG -O2     -D_WIN32 -     I..\include   -MTobj\gcc_static_rel\muParser_lib_muParser.o -  MFobj\gcc_static_rel\muParser_lib_muParser.o.d -MD -MP ../src/muParser.cpp
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\Chase\Desktop\muparser_v2_0_0\muparser_v2_0_0\build>

Появляется команда для «перехода» через следующую функцию.Я продолжаю набирать exit в «подсказке», и появляется команда продолжить выполнение до тех пор, пока это не будет сделано.Однако после полного выхода я не вижу никаких результатов, и кажется, что на самом деле ничего не было сделано.

Кроме того, это не имеет ничего общего с командной строкой.Я даже написал сценарий python для cd в каталог и вызвал make, и в выводе по-прежнему отображалась командная строка в стиле Windows - в комплекте с строкой Microsoft об авторских правах и т. Д., И я ждал ввода.Я набирал выход таким же образом, пока процесс не вышел обратно на python.

Теперь я могу сойти с ума, но я действительно растерялся.Запрашиваемая на форумах помощь не вызвала, единственный ответ - «сборка windows должна работать».

Кто-нибудь знает, что происходит ???

Ответы [ 2 ]

3 голосов
/ 11 сентября 2011

Я скачал пакет muParser и попытался его собрать.У меня такое же странное поведение, как и у тебя.Затем я понял, что у меня установлен только MSYS-make, а не MinGW-make (первый предназначен для использования в оболочке MSYS, второй - для оболочки Windows cmd).
К сожалению, при установке и использовании mingw32-make выдал другую ошибку, но поиск в Google привел меня к этой странице , где было предложено переименовать sh.exe в каталоге MSYS.После этого при запуске mingw32-make -f makefile.mingw успешно собранной (статической версии) библиотеки.

Другой метод, который вы и shellter используете при запуске ./configure; make в оболочке MSYS, также не может создать пример длямне.В этом случае он собирает версию библиотеки dll вместо статической версии;возможно, именно поэтому пример не может быть собран.

1 голос
/ 10 сентября 2011

(Возможно, вы захотите добавить тег для «make» или «gmake», который увеличит количество глаз, смотрящих на вашу проблему).

Глядя на makefile.mingw, я удивленчтобы увидеть такие выражения, как «-if не существует ..», то есть синтаксис .bat файла.

Я выполнил ./configure ; make, и он прошел мимо сообщений об ошибках, которые вы упоминаете, но я вижу кучу ошибоксообщения типа undefined reference to mu::ParserError:, поэтому я, вероятно, пропускаю библиотеки, чтобы заставить его работать полностью.Я должен это оставить и надеяться, что это поможет вам.Обратите внимание, что я не использовал make -f makefile.mingw.После использования configure, make просто взял только что созданный Makefile, и он заработал (исключая проблемы с библиотеками; -)

(Когда вы говорили «форумы», вы имели в виду форумы mingw? Если нет,попробуйте поискать здесь . Функциональность поиска довольно хорошая.)

Надеюсь, это поможет.

...