Tecgraf/PUC-Rio Library Download Tips

All the libraries were build using Tecmake. Please use it if you intend to recompile the sources. Tecmake can be found at http://www.tecgraf.puc-rio.br/tecmake.

The IM files can be downloaded at http://sourceforge.net/projects/imtoolkit/files/.
The CD files can be downloaded at http://sourceforge.net/projects/canvasdraw/files/.
The IUP files can be downloaded at http://sourceforge.net/projects/iup/files/.
The Lua files can be downloaded at http://sourceforge.net/projects/luabinaries/files/.

Build Configuration

Libraries and executables were built using speed optimization. In UNIX the dynamic libraries are built with the -fPIC parameter when in 64 bits. In MacOS X the dynamic libraries are in bundle format, except for the Lua bindings.

The DLLs were built using the cdecl calling convention. This should be a problem for Visual Basic users.

In Visual C++ we use the static multithread C Run Time Library for static libraries (-MT) and the dynamic multi thread C RTL for DLLs (-MD).

Packaging

Some pre-compiled Binaries are available for download. They are named according to the platform where they were build.

In UNIX all strings are based in the result of the command "uname -a". The package name is a concatenation of the platform uname, the system major version number and the system minor version number. Some times a suffix must be added to complement the name. The compiler used is always gcc. Binaries for 64-bits receive the suffix: "_64". In Linux when there are different versions of gcc for the same uname, the platform name is created adding the major version number of the compiler added as a suffix: "g3" for gcc 3 and "g4" for gcc 4.

In Windows the platform name is the compiler and its major version number.

All library packages (*_lib*) contains pre-compiled binaries for the specified platform and includes. Packages with "_bin" suffix contains executables only.

The Lua bindings are in a separate folder identified by the Lua version (Lua51, Lua52, ...). The packages follows the same naming convention. But notice that you will have to download the main package and the Lua package in order to use the Lua bindings.

The package name is a general reference for the platform. If you have the same platform it will work fine, but it may also work in similar platforms.

Here are some examples of packages:

iup2_4_Linux26_lib.tar.gz = IUP 2.4 32-bits Libraries and Includes for Linux with Kernel version 2.6 built with gcc 3.
iup2_4_Linux26g4_64_bin.tar.gz = IUP 2.4 64-bits Executables for Linux  with Kernel version 2.6 built with gcc 4.
iup2_4_Win32_vc8_lib.tar.gz = IUP 2.4 32-bits Static Libraries and Includes for Windows to use with Visual C++ 8 (2005).
iup2_4_Win32_dll9_lib.tar.gz = IUP 2.4 32-bits Dynamic Libraries (DLLs), import libraries and Includes for Windows to use with Visual C++ 9 (2008).
iup2_4_Win32_bin.tar.gz = IUP 2.4 32-bits Executables for Windows.

The Documentation files are in HTML format. Its package contains all the documentation files available on the website. The same documentation is also available in CHM and PDF formats. These two files are provided as a separate download, but they all have the same documentation.

The Source files are available in zip and tar.gz formats, but they have the same contents.

Installation

For any platform we recommend you to create a folder to contain the third party libraries you download. Then just unpack the packages you download in that folder. The packages already contains a directory structure that separates each library or toolkit. For example:

\mylibs\
        iup\
            bin\
            html\
            include\
            lib\Linux26
            lib\Linux26g4_64
            lib\vc8
            src
        cd\
        im\
        lua5.1\
        lua52\
        lua53\

This structure will also made the process of building from sources more simple, since the projects and makefiles will assume this structure .

Usage

For makefiles use:

1) "-I/mylibs/iup/include" to find include files
2) "-L/mylibs/iup/lib/Linux26" to find library files
3) "-liup" to specify the library files

For IDEs the configuration involves the same 3 steps above, but each IDE has a different dialog. The IUP toolkit has a Guide for some IDEs:

Borland C++ BuilderX - http://www.tecgraf.puc-rio.br/iup/en/ide_guide/cppbx.html
Code Blocks - http://www.tecgraf.puc-rio.br/iup/en/ide_guide/codeblocks.html
CodeLite - http://www.tecgraf.puc-rio.br/iup/en/ide_guide/codelite.html
Dev-C++ - http://www.tecgraf.puc-rio.br/iup/en/ide_guide/dev-cpp.html
Eclipse for C++ - http://www.tecgraf.puc-rio.br/iup/en/ide_guide/eclipse.html
Microsoft Visual C++ (Visual Studio 2003) - http://www.tecgraf.puc-rio.br/iup/en/ide_guide/msvc.html
Microsoft Visual C++ (Visual Studio 2005) - http://www.tecgraf.puc-rio.br/iup/en/ide_guide/msvc8.html
NetBeans - http://www.tecgraf.puc-rio.br/iup/en/ide_guide/netbeans.html
Open Watcom - http://www.tecgraf.puc-rio.br/iup/en/ide_guide/owc.html

Available Platforms

The following platforms can be available:

Package Name Description
AIX43  IBM AIX 4.3 (ppc) / gcc 2.95 (Motif 2.1)
IRIX65  SGI IRIX 6.5 (mips) / gcc 3.0 (Motif 2.1)
IRIX6465  SGI IRIX 6.5 (mips) / gcc 3.3 (Motif 1.2)
Linux26g4  Ubuntu 10.4 (x86) / Kernel 2.6 / gcc 4.4 (GTK 2.20)
Linux26g4_64  Ubuntu 10.4 (x64) / Kernel 2.6 / gcc 4.4 (GTK 2.20)
Linux30  Ubuntu 11.10 (x86) / Kernel 3.0 / gcc 4.6 (GTK 2.24)
Linux30_64  Ubuntu 11.10 (x64) / Kernel 3.0 / gcc 4.6 (GTK 2.24)
Linux32  Ubuntu 12.04 (x86) / Kernel 3.2 / gcc 4.6 (GTK 2.24)
Linux32_64  Ubuntu 12.04 (x64) / Kernel 3.2 / gcc 4.6 (GTK 2.24)
Linux35_64  Ubuntu 12.10 (x64) / Kernel 3.5 / gcc 4.7 (GTK 2.24)
Linux313_64  Ubuntu 14.04 LTS (x64) 2014 / Kernel 3.13 / gcc 4.8 (GTK 3.10)
Linux319_64  Ubuntu 15.04 (x64) 2015 / Kernel 3.19 / gcc 4.9 (GTK 3.14)
Linux44_64  Ubuntu 16.04 LTS (x64) 2016 / Kernel 4.4 / gcc 5.3 (GTK 3.18)
Linux415_64  Ubuntu 18.04 LTS (x64) 2018 / Kernel 4.15 / gcc 7.3 (GTK 3.22)
Linux50_64  Ubuntu 19.04 (x64) 2019 / Kernel 5.0 / gcc 8.3 (GTK 3.24)
Linux54_64  Ubuntu 20.04 LTS (x64) 2020 / Kernel 5.4 / gcc 9.3 (GTK 3.24)
Linux515_64  Ubuntu 22.04 LTS (x64) 2022 / Kernel 5.15 / gcc 11.4 (GTK 3.24)
SunOS510  Sun Solaris 10 (sparc) / gcc 3.4 (Motif 2.1)
SunOS510x86  Sun Solaris 10 (x86) / gcc 3.4 (Motif 2.1)
SunOS511x86  Sun Solaris 11 (x86) / gcc 4.5 (GTK 2.20)
FreeBSD54  Free BSD 5.4 (x86) / gcc 3.4
MacOS104  Mac OS X 10.4 (ppc) [Tiger] / Darwin Kernel 8 / gcc 4.0
MacOS104x86  Mac OS X 10.4 (x86) [Tiger] / Darwin Kernel 8 / gcc 4.0
MacOS105x86  Mac OS X 10.5 (x86) [Leopard] / Darwin Kernel 9 / gcc 4.0
MacOS106  Mac OS X 10.6 (x64) [Snow Leopard] / Darwin Kernel 10 / gcc 4.2
MacOS107  Mac OS X 10.7 (x64) [Lion] / Darwin Kernel 11 / clang 4.x
MacOS109  Mac OS X 10.9 (x64) [Mavericks] / Darwin Kernel 13 / clang 5.x
MacOS1010  Mac OS X 10.10 (x64) [Yosemite] / Darwin Kernel 14 / clang 6.x
MacOS1011  Mac OS X 10.11 (x64) [El Capitan] / Darwin Kernel 15 / clang 7.0
Win32_vc8  Static library built with Microsoft Visual C++ 8.0 (2005) (static RTL/multithread)
 Also compatible with Microsoft Visual C++ 2005 Express Edition
Win32_vc9  Static library built with Microsoft Visual C++ 9.0 (2008) (static RTL/multithread)
 Also compatible with Microsoft Visual C++ 2008 Express Edition
Win32_vc10  Static library built with Microsoft Visual C++ 10.0 (2010) (static RTL/multithread)
 Also compatible with Microsoft Visual C++ 2010 Express Edition
Win32_vc11  Static library built with Microsoft Visual C++ 11.0 (2012) (static RTL/multithread)
 Also compatible with Microsoft Visual C++ 2012 Express Edition
Win32_vc12  Static library built with Microsoft Visual C++ 12.0 (2013) (static RTL/multithread)
 Also compatible with Microsoft Visual C++ 2013 Express Edition -
https://www.visualstudio.com/vs/express/ ¹
Win32_vc14  Static library built with Microsoft Visual C++ 14.0 (2015) (static RTL/multithread)
 Also compatible with Microsoft Visual Studio Community 2015 -
https://www.visualstudio.com/vs/older-downloads/ ¹
Win32_vc15  Static library built with Microsoft Visual C++ 15.0 (2017) (static RTL/multithread)
 Also compatible with Microsoft Visual Studio Community 2017 -
https://www.visualstudio.com/downloads/ ¹
Win32_vc16  Static library built with Microsoft Visual C++ 16.0 (2019) (static RTL/multithread)
 Also compatible with Microsoft Visual Studio Community 2019 -
https://www.visualstudio.com/downloads/ ¹
Win32_vc17  Static library built with Microsoft Visual C++ 17.0 (2022) (static RTL/multithread)
 Also compatible with Microsoft Visual Studio Community 2022 -
https://www.visualstudio.com/downloads/ ¹
Win32_dll8  DLL and import library built with vc8, creates dependency with MSVCR80.DLL
Win32_dll9  DLL and import library built with vc9, creates dependency with MSVCR90.DLL
Win32_dll10  DLL and import library built with vc10, creates dependency with MSVCR100.DLL
Win32_dll11  DLL and import library built with vc11, creates dependency with MSVCR110.DLL
Win32_dll12  DLL and import library built with vc12, creates dependency with MSVCR120.DLL
Win32_dll14  DLL and import library built with vc14, creates dependency with VCRUNTIME140.DLL
Win32_dll15  DLL and import library built with vc15, creates dependency with VCRUNTIME140.DLL
 (what changes is the version of the ucrtbase.dll installed on the system)
Win32_dll16  DLL and import library built with vc16, creates dependency with VCRUNTIME140.DLL
 (what changes is the version of the ucrtbase.dll installed on the system)
Win32_dll17  DLL and import library built with vc17, creates dependency with VCRUNTIME140.DLL
 (what changes is the version of the ucrtbase.dll installed on the system)
Win64_vc??  Same as Win32_vc?? but for 64-bits systems using the x64 standard.
Win64_dll??  Same as Win32_dll?? but for 64-bits systems using the x64 standard.
Win32_gcc4  Static library built with Cygwin gcc 4.3  (Depends on Cygwin DLL 1.7) - http://www.cygwin.com/ ¹
Win32_cygw17  Same as Win32_gcc4, but using the Cygwin Posix system and also with a DLL and import library
Win32_dllg4  DLL and import library built with Cygwin gcc 4.3 (See Win32_gcc4)
Win32_mingw4  Static library built with MingW gcc 4.6 - http://www.mingw.org/ ¹
 Also compatible with Dev-C++ - http://www.bloodshed.net/devcpp.html
 and with Code Blocks - http://www.codeblocks.org/ ¹
Win32_dllw4  DLL and import library built with MingW gcc 4.6 (See Win32_mingw4)
Win32_mingw6  Static library built with MingW-w64 gcc 6.4 - http://mingw-w64.org/ ¹
 Also compatible with Dev-C++ - http://www.bloodshed.net/devcpp.html
 and with Code Blocks - http://www.codeblocks.org/ ¹
Win32_dllw6  DLL and import library built with MingW-w64 gcc 6.4 (See Win32_mingw6)
Win64_mingw4  Static library built with MingW-w64 gcc 4.5 - http://mingw-w64.org/ ¹
 Tool chains targeting Win64 / Personal Builds / "sezero"
 for 64-bits systems using the x64 standard.
Win64_dllw4  DLL and import library built with MingW gcc 4.5,
 for 64-bits systems using the x64 standard.
 creates dependency with MSVCRT.DLL
Win64_dllw6  DLL and import library built with MingW-w64 gcc 6.4 - http://mingw-w64.org/ ¹
 for 64-bits systems using the x64 standard.
 creates dependency with MSVCRT.DLL
Win32_owc1  Static library built with Open Watcom 1.5 - http://www.openwatcom.org/
Win32_bc55  Static library built with Borland C++ 5.5 Compiler -
 https://downloads.embarcadero.com/free/c_builder ¹
Win32_bc6  Static library built with Embarcadero C++ Builder 2010 / Embarcadero C++ 6 Compiler -
 https://downloads.embarcadero.com/free/c_builder (trial)
Win32_bin  Executables only for Windows (can be generated by any of the above compilers)
Win64_bin  Same as Win32_bin but for 64-bits systems using the x64 standard
Win32_cygw17_bin  Executables only for Windows NT/2000/XP, but using the Cygwin Posix system (See Win32_cygw17)

¹ - Notice that all the Windows compilers with links here are free to download and use.
² - Recently Borland removed the C++ Builder X from download. But if you bought a book that has the CD of the compiler, then it is still free to use.
3 - Open Motif 2.2 is classified as 'experimental' by the Open Group.