Главная > теги> MSYS

MSYS

Часть 2 собран с MinGW Jpegopitm

Я мог бы собраться вместе в одном месте, где это больше исправлений после 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

Я наткнулся записочку собрать Jpegoptim.

  1. Распакуйте размещения jpegoptim-1.2.3 под MSYS / SRC /
  2. Начать MSYS, введите следующие команды:
     $ cd /src/jpegoptim-1.2.3/ $ autoconf $ configure 
  3. настройки не проходит, следующая ошибка вышла
     configure: error: cannot find install-sh, install.sh, or shtool in aux "."/aux 
  4. должен быть изменен следующим образом 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 
  5. Создайте подпапку, привезти из подходящего места, такие как установка-ш (В примере с Jpeglib)
     $ mkdir sub $ cp ../jpeg-6bx/install-sh ../jpeg-6bx/config.sub ../jpeg-6bx/config.guess ./sub 
  6. Опять же, чтобы создать конфигурационный файл, запустить конфигурационный
     $ autoconf $ configure 
  7. Если вы настроите через, запустите сделать. После этого получите следующие ошибки:
     jpegoptim.c:354: undefined reference to 'realpath' jpegoptim.c:354: undefined reference to 'realpath' 
  8. должны быть изменены следующим образом 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: 
  9. Опять же, компиляция прошла в сделать.

, хотя это папка AUX дополнительных сценариев, таких как установка-ш это пережиток системы каждой BSD,
Вы не можете создать папку с именем AUX специальную папку в остатках DOS в Windows.
Таким образом, мы сохраняем некоторые виды вспомогательного сценарий для изменения "под" ссылки, вы можете создать "под" новую папку, которая входит в программное обеспечение системы GNU.
Кроме того, getuid realpath, и это было по ошибке во время компиляции является функцией системы POSIX
Были удалены или заменены с одной, что работает так же, или потому, что ОС Windows не существует.
Я бы лучше переписать его более красивым в нашем примере, но заменить realpath, чтобы пройти составления _fullpath

Главная > теги> MSYS

Поиск
Кормить
Перевод
Japanese flagItalian flagKorean flagChinese (Simplified) flagChinese (Traditional) flagEnglish flagGerman flagFrench flagRussian flagVietnamese flagThai flag

Вернуться в начало страницы