How do I build Exiv2 on the XYZ platform?¶
Exiv2 is developed on GNU/Linux with recent versions of GCC. Written in C++, it uses the standard C++ library, C++ exceptions and a few POSIX and C functions and is portable to many platforms and compilers.
The "distribution":[[http://www.exiv2.org/download.html]] includes standard build files for UNIX-like systems (including GNU/Linux, Mac OS X, Cygwin and MinGW) as well as Visual Studio project files for msvc2005 and later (2008/10/12/13/15). We also provide msvc2003 support. CMake support is provided on all supported platforms (see README-CMAKE). CMake/MSVC support is in contrib/cmake/msvc
We actively build and run our test suite on the following platforms (32/64 bit builds of both static and dynamic libraries):
- Mac OS-X (clang compiler)
- Linux (GCC compiler)
- Cygwin (GCC compiler)
- MinGW (GCC compiler)
- Visual Studio (cl compiler)
We currently do not support mobile platforms such as iOS, Android and WinCE although we believe the code can be successfully built for those platforms. Additionally, we believe Exiv2 can be built for embedded platforms with or without an operating system.
For Autotools on Unix systems (Mac/Linux/Cygwin/MinGW), the normal build command-set is:
$ cd <exiv2-dir> $ make config $ ./configure $ make # make CXXFLAGS=-ggdb for debug $ sudo make install *** TAKE CARE: You need the utility pkg-config to build samples AND the following environment variable *** $ export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/opt/local/lib/pkgconfig" $ make samples *** TAKE CARE: You must build the samples to run the tests *** $ make tests *** TAKE CARE: You need the test directory to run the tests (see below) ***To list options for the configure script use ./configure --help
For CMake on Unix systems (see <exiv2-dir>README-CMAKE for details and information about CMake/Visual Studio)
$ cd <exiv2-dir> $ mkdir ../build $ cd ../build $ cmake --help # to get a list of "generators" on your machine. $ cmake -G "Unix Makefiles" ../<exiv2-dir> # -DCMAKE_BUILD_TYPE=Debug for debugging $ make # builds exiv2 samples $ make tests $ sudo make install (if you wish to install)You may specify build options on the command-line:
$ cmake ../<exiv2-dir> -DEXIV2_ENABLE_SSH=OFF $ $ grep ^OPTION ../<exiv2-dir>/CMakeLists.txt # To list the options OPTION( EXIV2_ENABLE_SHARED "Build exiv2 as a shared library (dll)" ON ) OPTION( EXIV2_ENABLE_XMP "Build with XMP metadata support" ON ) OPTION( EXIV2_ENABLE_LIBXMP "Build a static convenience Library for XMP" ON ) OPTION( EXIV2_ENABLE_VIDEO "Build with video support" OFF ) OPTION( EXIV2_ENABLE_PNG "Build with png support (requires libz)" ON ) OPTION( EXIV2_ENABLE_NLS "Build native language support (requires gettext)" ON ) OPTION( EXIV2_ENABLE_PRINTUCS2 "Build with Printucs2" ON ) OPTION( EXIV2_ENABLE_LENSDATA "Build including lens data" ON ) OPTION( EXIV2_ENABLE_COMMERCIAL "Build with the EXV_COMMERCIAL_VERSION symbol set" OFF ) OPTION( EXIV2_ENABLE_BUILD_SAMPLES "Build the unit tests" ON ) OPTION( EXIV2_ENABLE_BUILD_PO "Build translations files" OFF ) OPTION( EXIV2_ENABLE_VIDEO "Build video support into library" OFF ) OPTION( EXIV2_ENABLE_WEBREADY "Build webready support into library" OFF ) OPTION( EXIV2_ENABLE_CURL "USE Libcurl for HttpIo" ON ) OPTION( EXIV2_ENABLE_SSH "USE Libssh for SshIo" ON ) OPTION( EXIV2_ENABLE_WIN_UNICODE "Use Unicode paths (wstring) on Windows" OFF )For Visual Studio on Windows, a robust environment is provided for building static/dynamic/debug/release/32/64 bit builds of the libraries and all sample applications.
Visual Studio support is provided in 2 flavors:
msvc: for 32 bit and 64 bit builds with Visual Studio 2005/8/10/12/13/15 More details: <exiv2-dir>/msvc/ReadMe.txt msvc2003: for 32 bit builds with Visual Studio 2003 More details: <exiv2-dir>/msvc2003/README-MSVC.txtFor Unix/Mac/Linux users of Eclipse or QtCreator or Xcode or other tools, use CMake and the appropriate generator (-G option). Use cmake --help for more information about available generators on your system.
The test directory¶
If you have checked out exiv2 source from svn (from trunk, branch, tag) you will have the test directory. If you are building from the release bundle (.tar.gz) you will need to download these directly from the repository (about 34 MB). For example when using exiv2-0.25.tar.gz:
$ cd <exiv2dir> $ svn export svn://dev.exiv2.org/svn/tags/0.25/test
Build/Platform Summary¶
A concise table for various platforms:
Platform/Compiler | GCC | Clang | MSVC |
---|---|---|---|
Linux | Fedora AutoMake Fedora CMake Ubuntu AutoMake Ubuntu CMake |
N/A | |
Windows (MinGW) | Win7 AutoMake | N/A | |
Windows (CygWin) | Win7 CMake & AutoMake | N/A | |
Windows (Visual Studio) | N/A | N/A | Win7 Visual Studio 2012 Using CMake with MSVC |
Mac OSX | Mac OSX AutoMake Mac OSX CMake |
N/A |
Additional Build Notes¶
The following are additional resources on the topic:
- I've provided notes about building and debugging in Eclipse, QtCreator, and Xcode.
- For dedicated code warriors, I'm confident you can use emacs/vim/gdb and other arcanary.
- Choose your weapon and may the force be with you!
- Building on MacOSX
- Building on Cygwin
- Building using Clang
- Building on MinGW
- Build/Debug CMake builds on Eclipse/Xcode/QtCreator
- Build/Debug ./configure builds on Eclipse/Xcode/QtCreator/
- Linking with Qt on MinGW/Linux/Mac
- Building Exiv2 and Linking Qt/MinGW on Win7
- Discussion about building for Qt/Mac on Snow Leopard
- Issue concerning wide character string support on Windows/Qt
If you have additional links, suggestions or requests, we'll be happy to hear from you.
Robin Mills robin@clanmills.com |
Nehal J Wani nehaljw.kkd1@gmail.com |
Back to the FAQ
Updated by Robin Mills about 5 years ago ยท 37 revisions