首页 >标签>的MSYS
MSYS的
第2部分编译使用MinGW Jpegopitm
- 7月23日,2010 12:00 AM
- 软件
我可能会在一个地方共同的地方,它是修复后changes'm的Jpegoptim.c变化。
@@ -53,6 +53,39 @@ #define ICC_IDENT_STRING "ICC_PROFILE\0" #define ICC_IDENT_STRING_SIZE 12 +#ifdef WIN32 +#define uid_t int +#define gid_t int +#define ROOT_UID 0 +#define ROOT_GID 0 +#define realpath(N,R) _fullpath((R),(N),_MAX_PATH) +uid_t getuid(void) +{ + return ROOT_UID; +} +uid_t geteuid(void) +{ + return ROOT_UID; +} +gid_t getgid(void) +{ + return ROOT_GID; +} +gid_t getegid(void) +{ + return ROOT_GID; +} +int setuid(uid_t uid) +{ + return (uid == ROOT_UID ? 0 : -1); +} +int setgid(gid_t gid) +{ + return (gid == ROOT_GID ? 0 : -1); +} + +#endif + void fatal(const char *msg); struct my_error_mgr { 编译的MinGW的Jpegopitm
- 2010年7月22日,12:00 AM
- 软件
我迷迷糊糊一点点注意到编译Jpegoptim的。
- MSYS / src目录下解压安置jpegoptim-1.2.3 /
- 启动MSYS,输入以下命令:
$ cd /src/jpegoptim-1.2.3/ $ autoconf $ configure - 配置不及格,以下错误出来
configure: error: cannot find install-sh, install.sh, or shtool in aux "."/aux - 要修改如下configure.in
@@ -3,7 +3,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(jpegoptim.c) AC_CONFIG_HEADER(config.h) -AC_CONFIG_AUX_DIR(aux) +AC_CONFIG_AUX_DIR(sub) AC_CANONICAL_HOST - 创建一个子文件夹,把从适当的位置,如安装SH(例如Jpeglib)
$ mkdir sub $ cp ../jpeg-6bx/install-sh ../jpeg-6bx/config.sub ../jpeg-6bx/config.guess ./sub - 再次,要生成一个配置文件,运行configure
$ autoconf $ configure - 通过配置,如果你运行make。 然后得到以下错误:
jpegoptim.c:354: undefined reference to 'realpath' jpegoptim.c:354: undefined reference to 'realpath' - 要修改象如下jpegoptim.c
@@ -351,7 +351,11 @@ } break; case 'd': - if (realpath(optarg,dest_path)==NULL || !is_directory(dest_path)) { +#ifdef WIN32 + if (_fullpath(dest_path,optarg,MAXPATHLEN)==NULL || !is_directory(dest_path)) { +#else + if (realpath(optarg,dest_path)==NULL || !is_directory(dest_path)) { +#endif fatal("invalid argument for option -d, --dest"); } if (verbose_mode) @@ -441,8 +445,13 @@ fatal("splitdir() failed!"); strncpy(newname,argv[i],sizeof(newname)); } - snprintf(tmpfilename,sizeof(tmpfilename), +#ifdef WIN32 + snprintf(tmpfilename,sizeof(tmpfilename), + "%sjpegoptim-%d.tmp", tmpdir, (int)getpid()); +#else + snprintf(tmpfilename,sizeof(tmpfilename), "%sjpegoptim-%d-%d.tmp", tmpdir, (int)getuid(), (int)getpid()); +#endif } retry_point: - 再次,在make编译通过。
,尽管它的文件夹名为AUX辅助脚本,如安装SH它是一个系统的每一个BSD的遗物,
你不能创建一个文件夹命名为辅助的特殊文件夹在Windows中的DOS残余。
因此,我们储存一些各种辅助脚本来改变“分”的提述,你可以创建一个“子”的新文件夹,其中包括在软件系统的GNU。
此外,getuid真实路径和错误是在编译时是一个POSIX系统的功能
已被删除或更换工作,因为Windows不存在相同或。
我有更好的重写更美丽在我们的例子,但为了通过编译_fullpath取代的真实路径
首页 >标签>的MSYS
- 搜索
- 喂
- 翻译










