Mingw下編譯安裝 SDL的問題

關於在mingw+msys環境下,編譯SDL所出現的問題!Createprocess 和 ranlib 的相關錯誤
2008-03-25 13:09
仍是先貼的圖出來,看看我遇到的錯誤:
請看這句話process_begin:CreateProcess(NULL,/bin/install -c -m 755 sdl-config d:/mingw/bin/sdl-config,...) failed.
make (e=3):系統找不到指定的路徑(亂碼內容)
剛開始,發現這個問題的時候,我懷疑是個人環境的問題,在網上也有人說是環境的問題,可是通過屢次的確認和測試,證實了個人環境好像沒有問題(根據我我的的判斷),但到底是什麼問題?
在我沒有找到我環境的問題的時候,我找到了另外一種解決問題的方法。不過不夠靈活,但至少能夠進行下去。
★:個人環境是根據網上衆多高手的貼子製做成功的,並且也通過安裝過別的開發包,是沒有問題的。
如今,咱們分析一下,錯誤出現的緣由。
首先,要知道CreateProcess是幹什麼的?
     顧名思義,他是用來創建一個新的process得。他應該是windows得一個API函數,可是要在msys得仿linux命令行裏對他進行調用,可是 這裏給CreateProcess傳遞的參數則是這樣的:「/bin/install -c -m 755 sdl-config d:/mingw/bin/sdl-config」,很顯然,這個參數中"/bin/install"的這個命令用的路徑方法測試linux得方法。可是 windows得API函數可以認識他的這樣的路徑方法嗎?很顯然,不行!!!那就要想辦法解決這個問題了。
接着,就是尋找/bin/install -c -m 755 sdl-config d:/mingw/bin/sdl-config,這個東西,是如何傳遞過去的?
      免不了,要看看SDL的makefile文件了,
     ★:我是在SDL 官方網下載的源代碼,版本是1.2.13
     ①,剛開始我執行的配置命令是這樣的:
          configure --prefix=/mingw
     ②,編譯命令:make
     ③,安裝命令:make install
      就是在執行安裝的時候出現了錯誤。
    問題就出如今Makefile裏,以下:

SHELL    = D:/msys/bin/sh
CC      = gcc
INCLUDE = -I./include
CFLAGS = -g -O2
EXTRA_CFLAGS = -I./include -D_GNU_SOURCE=1
LDFLAGS =
EXTRA_LDFLAGS = -lm -luser32 -lgdi32 -lwinmm
LIBTOOL = $(SHELL) $(top_builddir)/libtool
INSTALL = /bin/install -c #( Makefile的第29行)
NASM    = -f win32
AR    = ar
RANLIB    = ranlib
WINDRES    = windres

這個 INSTALL 文件之後的好多地方都使用到了(凡有安裝文件的地方),它的直就是傳遞給CreateProcess這個windows的API函數。故此,出現了問題。
最後,問題的解決方法,
       可能還有其餘的更好的解決方法,可是我如今僅僅找到了,這一種若是那位大俠有別的解決方法,歡迎指教.
INSTALL = /bin/install -c 改成 INSTALL = D:/msys/1.0/bin/install -c
★:具體install命令的路徑就要看你安裝的環境而定了。 好了,就是這樣的,如此一來你就能夠順利安裝了。 不過,我解決這個問題之後,有出來了一個新的問題,我將在下篇文章中說明。 ★★★:最後,有另外的解決方法,我也嘗試是能夠的。 以下描述: 在安裝mingw32得時候會有一個mingw32-make.exe文件,但默認是不安裝的。 但在安裝msys得時候也有一個相同功能的make.exe文件。 若是用mingw32-make.exe就會發生上邊所述的錯誤,可是用msys得make得時候就不會出現上邊的狀況。 ★★:歡迎轉載,引用請標註出處,謝謝!
相關文章
相關標籤/搜索