Installation Dependencies on 64-bit Linux

Requirements

MPLAB® X IDE and the MPLAB XC Compilers are 32-bit applications, so to run them on a 64-bit system with a 64-bit Linux distribution, you may need to install additional packages from your distribution's repository.

For better or worse, there is still quite a bit of variation among 64-bit Linux distributions with respect to their support of 32-bit applications and exactly which libraries are installed or required by default. The information on this page will hopefully allow you to successfully install and run MPLAB X IDE and the MPLAB XC Compilers on a 64-bit Linux system.

Do I have a 64-bit Linux installation?

You can determine whether you are running a 64-bit version of Linux by running the following command in a terminal:

uname -m

If the output has "64" at the end (e.g. x86_64), then you have a 64-bit system.

What about 64-bit distributions with multiarch support?

64-bit versions of Debian based distributions such as Ubuntu, Linux Mint and their derivatives, and perhaps some others now include multiarch support. Ideally, this means that you don't need to install ia32-libs, though you may still require some 32-bit versions of specific libraries.

You can determine if a 64-bit Debian based distribution has multiarch support by running the following command in a terminal:

dpkg --print-foreign-architectures

If the output is i386 you have multiarch support and don't need to install the ia32-libs 32-bit runtime libraries, though you will probably need to install other 32-bit libraries.

What 32-bit libraries / packages do I need to install?

MPLAB X IDE requires the libraries listed below. The MPLAB XC compilers require a subset of these libraries, so if you install them for MPLAB X IDE, you will be all set to use the MPLAB XC compilers as well.

Package Description Libraries
ia32-libs 32-bit runtime libraries. Only for 64-bit distributions without multiarch support
libc6:i386 Embedded GNU C Library libc.so, libdl.so, libm.so, libpthread.so, librt.so
libx11-6:i386 X11 client-side library libX11.so
libxext6:i386 X11 miscellaneous extension library libXext.so
libstdc++6:i386 GNU Standard C++ Library libstdc++.so
libexpat1:i386 XML parsing C library libexpat.so

Distribution Specific Notes

Ubuntu 14.04 and later

libc6:i386 is the only one of these packages you will find if you are using Synaptic. These must be installed from the command line using apt-get:

sudo apt-get install libc6:i386 libx11-6:i386 libxext6:i386 libstdc++6:i386 libexpat1:i386

Fedora

If you try to install without the required libraries, the installer will quit without any warning messages.
Tested on versions 20 and above.

sudo dnf install libX11.i686 libXext.i686 libgcc.i686 libstdc++.i686 expat.i686

Mageia 4

Installer script can't detect 32 bit libraries on this platform.
Work around suggested by a user:
In the installation script function 'check32BitLibraries()' search for:

echo Check for 32 Bit libraries
out=0
for lib in $@
do
ldconfig -p | grep $lib | grep 386 > /dev/null
if [ $? -ne 0 ]; then
if [ $out -eq 0 ]; then
echo These 32 bit libraries were not found and are needed for MPLAB X to run:

and change
ldconfig -p | grep $lib | grep 386
to
ldconfig -p | grep $lib | grep -v x86-64
to enable detection.
According to the developers, a fix similar to this will be in the version 2.25 installer script.

Package Installation

Check Installation Status

You may already have one or more of these installed on your system. To determine whether a package is installed on a Debian based distribution, run the following command in a terminal:

dpkg -s package

For example: dpkg -s libexpat1:i386

For rpm based systems, the command is:

rpm -qa | grep package

Installing Required Packages

On Debian based systems (e.g. Ubuntu, Mint) packages may be installed with apt-get in a terminal window:

sudo apt-get install package1 package2 packageN

Or they may be installed from your distribution's graphical package manager such as Synaptic, Muon, or the Ubuntu Software Center.

© 2024 Microchip Technology, Inc.
Notice: ARM and Cortex are the registered trademarks of ARM Limited in the EU and other countries.
Information contained on this site regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights.