Accueil > tags> MSYS

MSYS

Partie 2 compilé avec MinGW l'Jpegopitm

Je pourrais se réunir en un seul endroit où il est plus correctif suivant changes'm un changement de 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 { 

Compilé avec MinGW l'Jpegopitm

Je suis tombé une petite note pour compiler le jpegoptim.

  1. Décompressez le placement jpegoptim-1.2.3 sous msys / src /
  2. Début msys, entrez les commandes suivantes:
     $ cd /src/jpegoptim-1.2.3/ $ autoconf $ configure 
  3. configurer ne passe pas, l'erreur suivante de sortir
     configure: error: cannot find install-sh, install.sh, or shtool in aux "."/aux 
  4. à modifier comme suit 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. Créer un sous-dossier, apporter de l'emplacement approprié, tel que install-sh (Dans l'exemple de jpeglib)
     $ mkdir sub $ cp ../jpeg-6bx/install-sh ../jpeg-6bx/config.sub ../jpeg-6bx/config.guess ./sub 
  6. Encore une fois, pour générer un fichier de configuration, exécutez la commande configure
     $ autoconf $ configure 
  7. Si vous configurez par le biais, vous courez le faire. Ensuite, récupérez les erreurs suivantes:
     jpegoptim.c:354: undefined reference to 'realpath' jpegoptim.c:354: undefined reference to 'realpath' 
  8. doivent être modifiés comme suit 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. Encore une fois, la compilation est passé dans le faire.

il, bien qu'il soit dossier nommé auxiliaires des scripts auxiliaires tels que install-sh est-il une relique du système chaque BSD,
Vous ne pouvez pas créer un dossier nommé aux dossier spécial dans les vestiges de DOS sous Windows.
Par conséquent, nous stockons certains types de script auxiliaire de changer les "sub" références, vous pouvez créer un "sous" nouveau dossier, qui est inclus dans le logiciel du système GNU.
En outre, getuid realpath et qui était en erreur lors de la compilation est une fonction du système POSIX
A été supprimé ou remplacé par un autre qui fonctionne de la même ou parce que Windows n'existe pas.
Je ferais mieux de réécrire plus belle dans notre exemple, mais a remplacé le realpath pour passer de la compilation _fullpath

Accueil > tags> MSYS

Rechercher
Nourrir
Traduction
Japanese flagItalian flagKorean flagChinese (Simplified) flagChinese (Traditional) flagEnglish flagGerman flagFrench flagRussian flagVietnamese flagThai flag

Retour vers le haut de la page