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 confisued car il n'y a pas de guide officiel sur la façon de le compiler dans n'importe quel compilateur. Je serais vraiment heureux si quelqu'un pouvait fournir un tutoriel sur la façon de la bibliothèque peuvent être compilés dans un compilateur. D'avance, merci.
5 réponses
Voici comment j'ai construit libjpeg en utilisant MinGW sous Windows:
1. Obtenez MinGW avec MSYS
J'ai obtenu une copie de http://sourceforge.net/projects/mingw/. Citation 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 traditionnellement UNIX pour être présents.
Nous en aurons besoin pour exécuter le script configure
fourni avec libjpeg source.
2. Obtenir des sources libjpeg
De http://www.ijg.org / , prenez le paquet au format Unix (celui de Windows ne fonctionnera pas avec cette procédure). J'ai pris la version jpeg_8d
.
3. Préparer un répertoire de construction
, j'ai fait un répertoire temporaire nommé tmp
dans D:\
, mais vous pouvez choisir ce qui convient à vos besoins. La chose qui compte est le nom des chemins dans MSYS. Comme il apporte un peu * Unixity * à Windows, les chemins ne peuvent pas être utilisés dans leur forme originale.
En un mot:
C:\path\to\file
devient /c/path/to/file
dans MSYS terre, une sorte
D:\tmp
devient /d/tmp
.
Décompressez les sources libjpeg dans D:\tmp
, donc vous avez un répertoire jpeg-8d
là-dedans.
Créez un répertoire jpeg-build
à l'intérieur de 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 Unix terre. Une option doit être ajoutée pour rediriger le processus d'installation vers D:\tmp\jpeg-build
.
Exécutez les commandes suivantes dans un shell MSYS (également nommé shell MinGW dans le menu Démarrer de Windows):
cd /d/tmp/jpeg-8d
./configure --prefix=/d/tmp/jpeg-build
make
make install
, Comme une étape supplémentaire, vous pouvez exécuter make test
pour plus de sécurité.
Ces commandes construiront des versions statiques et partagées de libjpeg.
5. Prenez les marchandises, supprimez les temporaires
Si tout fonctionne bien, vous pouvez supprimer le répertoire D:\tmp\jpeg-8d
, mais gardez le jpeg-build
un. Il contient:
- un répertoire
include
contenant les en-têtes libjpeg. Vous pouvez les déplacer dans le répertoire en-têtes de votre compilateur. - un répertoire
lib
, avec le fichier.a
à transmettre à l'éditeur de liens. Vous pouvez les déplacer dans le répertoire de la bibliothèque de votre compilateur. - un répertoire
bin
contenant la bibliothèque partagée libjpeglibjpeg-8.dll
et les outils jpeg. - un répertoire
share
, contenant des pagesman
pour les outils jpeg.
Vous pouvez maintenant construire votre programmez-le et liez-le contre libjpeg en indiquant les bons chemins d'inclusion et de bibliothèque.
Vous trouverez 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 sera utile.
Pour compiler libjpeg
9 Dans Visual Studio 2012, Voici les étapes (après avoir décompressé le fichier d'archive):
Téléchargez le fichier
WIN32.MAK
(par exemple, à partir de http://www.bvbcode.com/code/f2kivdrh-395674-down), et placez une copie dans le répertoire de code source racine (éventuellementC:\jpeg-9
, mais cela dépend de l'endroit où vous l'avez décompressé). Je vais me référer à ce répertoire comme%jpegsrc%
à partir de Maintenant. Avoir ce fichier est important, sinon l'étape 3 produira une erreur.-
Dans l'invite de commande Visual Studio, ouverte sur
%jpegsrc%
:cd %jpegsrc%
-
À la même invite de commande, exécutez ce qui suit:
NMAKE /f makefile.vc setup-v10
, Cela va créer deux solutions Visual Studio 2010 dans
%jpegsrc%
:jpeg.sln
etapps.sln
. Ouvrez chaque solution dans Visual Studio 2012. Chacun vous demandera de mettre à jour tous les projets au format 2012. Cliquez sur "mettre à Jour."Une fois, je l'ai fait, l'invite n'apparaît pas. Dans le cas où cela se produit, faites un clic droit sur le
jpeg
solution dans L'Explorateur de solutions, et choisissez " Mettre à jour les projets VC++..."qui va produire la même invite de commandes.Enregistrez et construisez chaque solution comme d'habitude. (Vous devez construire la solution
jpeg.sln
avantapps.sln
, puisque cette dernière dépend de la première.)
Remarque: Ce processus devrait fonctionner correctement dans Visual Studio 2010, sans la mise à jour, mais je ne l'ai pas testé.
Update: cette méthode fonctionne toujours dans Visual Studio 2015 pour libjpeg-9a
.
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 cela, vous pouvez le trouver ici.
, Puis extrayez le contenu du fichier zip sur votre disque.
Ouvrez ensuite un shell d'invite de commande VS2010 (ou appelez vcvarsall.bat sur n'importe quelle fenêtre d'invite de commande), cd dans le 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 va générer deux Solutions VS2010, et un tas de fichiers de projet. Les solutions sont:
-
jpeg.sln
, qui construitjpeg.lib
-
apps.sln
, qui construit les exemples d'applications.
Bonne chance!
Si vous voulez le mode débogage aussi bien dans MSVC. Suivez la méthode D'AthanasiusOfAlex, construisez la version, puis:
- Cliquez avec le bouton droit sur le projet et sélectionnez Propriétés bas
- Cliquez sur Configuration manager et sur la solution active configuration liste déroulante Sélectionner-nouveau -
- définit le nom sur debug et on dans la liste déroulante, sélectionnez Copier les paramètres de configuration dans release et cliquez sur OK
- Fermez la boîte de dialogue, accédez aux paramètres généraux et sous cible Nom Ajouter un d à la fin, cela ressemble à ceci: $(ProjectName) d
- dans la liste déroulante optimisation du programme entier sélectionnez: aucune optimisation du programme entier
- Ensuite, cliquez sur le C/C++ sous Propriétés de configuration à gauche et dans la liste déroulante Format D'informations de débogage sélectionnez C7 compatible (/Z7)
- sous Optimisation, sélectionnez Désactivé et sélectionnez NON pour activer les optimisations fibre-Safe et les optimisations de programme entier
- sous préprocesseur, définitions de préprocesseur, cliquez sur Modifier et utiliser la suite: WIN32 _DÉBOGAGE DÉBOGAGE _LIB _CRT_SECURE_NO_WARNINGS
- sous génération de code, sous bibliothèque d'exécution, sélectionnez DLL de débogage multithread (/MDd)
Construire et vous avez terminé!
Si vous n'avez pas installé Visual Studio 2010, voici ce qui fonctionne sur Visual Studio 2017:
Étapes de base / communes:
- Téléchargez la dernière version de libjpeg depuis: http://www.ijg.org/ (version zip) et l'extraire dans un dossier
- ouvrez "L'invite de commande du développeur pour VS2017"
- changez le répertoire (
cd
) à l'endroit où vous avez extrait la source de la bibliothèque
VS 2017 Approche:
Inclure 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
-
Exécutez
nmake /f makefile.win setup-v15
(notez le 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 utilisez. Si vous voulez la configuration de débogage, suivez ce que @ SteveEng a expliqué.
Erreurs que vous pourriez trébucher sur:
- Si
nmake
échoue et vous dit qu'il ne sait pas comment faire jconfig.h, renommez manuellement le fichierjconfig.vc
enjconfig.h
- Si
nmake
échoue et vous indique Win32.Mak ne peut pas être trouvé, 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 fairesetup-v15
, d'essais et d' erreur votre chemin à travers en commençant parsetup-v10
,setup-v11
, etc... Ce sont des versions VS et l'une d'entre elles devrait fonctionner tant que vous avez installé une version VS ultérieure à VS 2008.
J'espère que cela aide les gens à vivre une douleur similaire avec cela.