web-dev-qa-db-fra.com

Compilation de libjpeg

Y a-t-il quelqu'un qui réussit à inclure libjpeg dans un compilateur? J'ai tout essayé: Dev C++, VS10, CodeBlocks, copiez les en-têtes et la lib à la main, ajoutez avec l'éditeur de liens mais rien. En ce moment, je suis vraiment confus car il n'y a pas de guide officiel sur la façon de le compiler dans un compilateur. Je serais vraiment heureux si quelqu'un pouvait fournir un tutoriel sur la façon dont la bibliothèque peut être compilée dans n'importe quel compilateur. Merci d'avance.

27
NiVeR

Voici comment j'ai construit libjpeg en utilisant MinGW sous Windows:

1. Obtenez MinGW avec MSYS

J'ai une copie de http://sourceforge.net/projects/mingw/ . Citant de www.mingw.org:

MSYS est une collection d'utilitaires GNU tels que bash, make, gawk et grep pour permettre la construction d'applications et de programmes qui dépendent des outils UNIX traditionnels.

Nous en aurons besoin pour exécuter le script configure fourni avec les sources libjpeg.


2. Obtenez les sources libjpeg

Depuis http://www.ijg.org/ , prenez le package au format Unix (celui de Windows ne fonctionnera pas avec cette procédure). J'ai pris le jpeg_8d version.


3. Préparez un répertoire de construction

J'ai créé un répertoire temporaire nommé tmp dans D:\, mais vous pouvez choisir ce qui convient à vos besoins. Ce qui compte, c'est le nom des chemins dans MSYS. Comme il apporte une certaine * Unixity * à Windows, les chemins ne peuvent pas être utilisés dans leur forme d'origine. En un mot:

C:\path\to\file devient /c/path/to/file au pays MSYS, un si D:\tmp devient /d/tmp.

Décompressez les sources libjpeg dans D:\tmp, donc vous avez un jpeg-8d répertoire là-dedans.

Créer un jpeg-build répertoire à l'intérieur D:\tmp, il contiendra la bibliothèque construite.

Maintenant, tout est prêt pour la construction.


4. ./configure, make, make install

C'est le mantra de la construction en terre Unix. Une option doit être ajoutée pour rediriger le processus d'installation vers D:\tmp\jpeg-build.

Exécutez les commandes suivantes dans un MSYS Shell (également nommé MinGW Shell dans le menu Démarrer de Windows):

cd /d/tmp/jpeg-8d
./configure --prefix=/d/tmp/jpeg-build
make
make install

Comme étape supplémentaire, vous pouvez exécuter make test Pour la sécurité.

Ces commandes créeront des versions statiques et partagées de libjpeg.


5. Prenez les marchandises, supprimez les temporaires

Si tout se passe bien, vous pouvez supprimer le D:\tmp\jpeg-8d répertoire, mais conservez le jpeg-build un. Il contient:

  • un répertoire include, contenant les en-têtes libjpeg. Vous pouvez les déplacer vers le répertoire des en-têtes de votre compilateur.
  • un répertoire lib, avec .a fichier à passer à l'éditeur de liens. Vous pouvez les déplacer vers le répertoire de bibliothèque de votre compilateur.
  • un répertoire bin, contenant la bibliothèque partagée libjpeg libjpeg-8.dll et outils jpeg.
  • un répertoire share, contenant des pages man pour les outils jpeg.

Vous pouvez maintenant construire votre programme et le lier à libjpeg en indiquant les bons chemins d'inclusion et de bibliothèque.


Vous pouvez trouver de nombreux détails sur le processus de construction et d'installation de libjpeg dans install.txt à l'intérieur du paquet source.

J'espère que cela vous sera utile.

22
overcoder

Pour compiler libjpeg 9 dans Visual Studio 2012, voici les étapes (après avoir décompressé le fichier d'archive):

  1. Téléchargez le fichier WIN32.MAK (par exemple, depuis http://www.bvbcode.com/code/f2kivdrh-395674-down ), et placez une copie dans le répertoire du code source racine (éventuellement C:\jpeg-9, mais cela dépend de l'endroit où vous l'avez décompressé). Je ferai référence à ce répertoire comme %jpegsrc% à partir de maintenant. Avoir ce fichier est important; sinon, l'étape 3 produira une erreur.

  2. Dans l'invite de commande de Visual Studio, ouvrez à %jpegsrc%:

    cd %jpegsrc%

  3. À la même invite de commandes, exécutez ce qui suit:

    NMAKE /f makefile.vc setup-v10

    Cela créera deux solutions Visual Studio 2010 dans %jpegsrc%: jpeg.sln et apps.sln.

  4. Ouvrez chaque solution dans Visual Studio 2012. Chacune vous invitera à mettre à jour tous les projets au format 2012. Cliquez sur "Mettre à jour". Une fois que je l'ai fait, l'invite n'est pas apparue. Dans ce cas, cliquez avec le bouton droit sur la solution jpeg dans l'Explorateur de solutions et choisissez "Mettre à jour les projets VC++ ...", ce qui produira la même invite.

  5. Enregistrez et créez chaque solution comme d'habitude. (Vous devez construire le jpeg.sln solution avant apps.sln, car ce dernier dépend du premier.)

Remarque: ce processus devrait fonctionner correctement dans Visual Studio 2010, sans la mise à jour, mais je ne l'ai pas testé.

Mise à jour: Cette méthode fonctionne toujours dans Visual Studio 2015 pour libjpeg-9a.

45
AthanasiusOfAlex

Il est vraiment simple de construire jpeg.lib avec VS10.

Tout d'abord, téléchargez le code source libjpeg au format Zip. Au moment où j'écris ceci, vous pouvez le trouver ici .

Extrayez ensuite le contenu du fichier Zip sur votre disque.

Ensuite, ouvrez un shell d'invite de commande VS2010 (ou appelez vcvarsall.bat sur n'importe quelle fenêtre d'invite de commande), accédez au répertoire source jpeg (jpeg-8d dans le téléchargement référencé ci-dessus) et tapez ce qui suit:

nmake -f makefile.win setup-v10

Cela générera deux solutions VS2010 et un tas de fichiers de projet. Les solutions sont:

  • jpeg.sln, qui construit jpeg.lib
  • apps.sln, qui crée les exemples d'applications.

Bonne chance!

16
Miguel

Si vous n'avez pas installé Visual Studio 2010, voici ce qui fonctionne sur Visual Studio 2017:

Étapes de base/communes:

  1. Téléchargez la dernière version de libjpeg à partir de: http://www.ijg.org/ (version Zip) et extrayez-la dans un dossier
  2. Ouvrez l '"invite de commande du développeur pour VS2017"
  3. Changez le répertoire (cd) où vous avez extrait la source de la bibliothèque

Approche VS 2017:

  1. Incluez le répertoire Windows SDK v7.1A (requis pour Win32.Mak par nmake plus tard) en exécutant: set INCLUDE=%INCLUDE%;c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include

  2. Courir nmake /f makefile.win setup-v15 (notez la v15 pour VS2017 ici)

À partir de là, suivez ce que @AthanasiusOfAlex a expliqué pour mettre à niveau la solution Visual Studio 2010 vers la version Visual Studio que vous exécutez. Si vous souhaitez la configuration de débogage, suivez les explications de @SteveEng.

Erreurs que vous pourriez rencontrer:

  • Si nmake échoue et vous indique qu'il ne sait pas comment créer jconfig.h, renommez manuellement le fichier jconfig.vc à jconfig.h
  • Si nmake échoue et vous indique que Win32.Mak est introuvable, copiez-le manuellement à partir du répertoire SDK mentionné à l'étape # 4 dans le répertoire source libjpeg. Si vous n'avez pas installé cette version du SDK, téléchargez le fichier à partir d'une ressource fiable.
  • Si nmake échoue et vous dit qu'il ne sait pas comment faire setup-v15, essayez et faites des erreurs en commençant par setup-v10, setup-v11, etc ... Ce sont des versions VS et l'une d'elles devrait fonctionner tant que vous avez une version VS postérieure à VS 2008 installée.

J'espère que cela aide les gens à traverser une douleur similaire avec cela.

3
Vinz

Si vous souhaitez également le mode débogage dans MSVC. Suivez la méthode d'AthanasiusOfAlex, construisez la version, puis:

  1. Faites un clic droit sur le projet et sélectionnez les propriétés tout en bas
  2. Cliquez sur le gestionnaire de configuration et sur la liste déroulante de configuration de la solution active, sélectionnez -nouveau-
  3. Définissez le nom à déboguer et, dans la liste déroulante, sélectionnez les paramètres de configuration de copie de la version et cliquez sur OK
  4. Fermez la boîte de dialogue, accédez aux paramètres généraux et sous Nom cible, ajoutez un d à la fin pour qu'il ressemble à ceci: $ (ProjectName) d
  5. Dans la liste déroulante Optimisation de l'ensemble du programme, sélectionnez: Aucune optimisation de l'ensemble du programme
  6. Cliquez ensuite sur C/C++ sous les propriétés de configuration à gauche et dans la liste déroulante Format d'informations de débogage, sélectionnez Compatible C7 (/ Z7)
  7. Sous optimisation, sélectionnez désactivé et sélectionnez NON pour activer les optimisations Fibre-Safe et les optimisations de programme entier
  8. Sous préprocesseur, définitions de préprocesseur, cliquez sur modifier et utilisez ce qui suit: WIN32 _DEBUG DEBUG _LIB _CRT_SECURE_NO_WARNINGS
  9. Sous la génération de code, sous la bibliothèque d'exécution, sélectionnez Débogage multithread DLL (/ MDd)

Construisez et vous avez terminé!

2
SteveEng