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得时候就不会出现上边的状况。 ★★:欢迎转载,引用请标注出处,谢谢!
相关文章
相关标签/搜索