2011-09-10 17 views
4

我在嘗試在Windows機器上構建和安裝muParser時遇到了最奇怪的問題。正如安裝指南,我只是cd到build文件夾中的建議,並運行MinGW make命令(帶有muParser)的奇怪問題?

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命令中。因此,我在「提示符」處鍵入「退出」

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。

現在,我可能會瘋了,但我真的很困惑。在論壇上詢問沒有任何幫助,唯一的迴應是「窗口的構建應該工作。」

有誰知道發生了什麼?

回答

1

(你可能想爲'make'或'gmake'添加一個標籤,這會增加眼睛看你的問題的次數)。

看着makefile.mingw,我很驚訝地發現像'-if not exist ..'這樣的語句,那就是.bat文件的語法。

我跑過./configure ; make,它已經超過了你提到的錯誤信息,但是我看到一堆錯誤消息,比如undefined reference to mu::ParserError:,所以我可能會缺少使它完全工作的庫。我將不得不離開它,並希望它可以幫助你。請注意,我沒有使用make -f makefile.mingw。使用configure後,make剛拿起新創建的Makefile文件,它的工作(除了庫的問題;-)

(當你說的論壇,你的意思是MinGW的論壇?如果沒有,嘗試東張西望here。該搜索功能是相當不錯的。)

我希望這可以幫助。

+0

我做了同樣的事情,我也看到問題與未定義的引用....我不知道這裏想什麼... – cemulate

+0

對我來說,這是示例程序失敗與未定義的引用。我認爲muParser現在是正確的,但我不知道如何測試它。它現在可能正在工作。你需要這些例子嗎?請參閱答案的進一步編輯。祝你好運。 – shellter

+0

lib * .dll.a沒有錯。這是導入庫附帶DLL的常用命名方案。 – eriktous

3

我下載了muParser包並試圖構建它。我得到了和你一樣的奇怪行爲。然後我意識到我只安裝了MSYS-make,而不是MinGW-make(第一個用於MSYS shell,第二個用於Windows cmd shell)。
不幸的是,安裝和使用mingw32-make給出了一個不同的錯誤,但是谷歌搜索導致我到this page,它建議在MSYS目錄中重命名sh.exe。完成之後,運行mingw32-make -f makefile.mingw成功構建(靜態版本)庫。

您和shellter在MSYS shell中運行./configure; make時使用的另一種方法也無法爲我構建示例。它在這種情況下構建dll版本的庫,而不是靜態版本;也許這就是爲什麼這個例子無法構建。

+0

自發布5年後,謝謝。我在路徑的某個地方有sh.exe。在構建之前重命名解決問題。 –