Getting Started with Application Development Using Intel® System Studio 2018 for Linux* OS

Explore the Build Components

  • Intel® C++ Compiler: Develop optimized applications in the Eclipse* IDE
  • Intel® Math Kernel Library: Improve application performance
  • Intel® Threading Building Blocks: Optimize embedded solutions for multi-core architectures
  • Intel® Integrated Performance Primitives: Speed up signal and image processing, data compression, string manipulation, and more
  • Intel® Data Analytics Acceleration Library: Boost machine learning and big data analytics performance
  • GNU* Project Debugger (GDB) Application Debugger - Linux* targets only: Pinpoint the causes of application crashes

Prerequisites

Before you create a project for the first time, follow the steps in this section. Then, continue to the next section for instructions to create and run a project.

Create a Target Connection Using Root Privileges

Applications that use MRAA/UPM libraries need to be run with root privileges so that they can control the hardware (GPIOs, I2C and SPI buses). Follow the steps in this section to create the target connection and ensure that for all future connections, your application will run as root.

To use TCF

The following steps are needed to use TCF regardless of MRAA/UPM usage.

  1. Connect both the host and the target system to the network
  2. Install OpenSSH server on the target: sudo apt install openssh-server

For a Linux* or macOS* host

  1. Generate the key with an empty passphrase:

    ssh-keygen -t rsa -f ~/.ssh/id_rsa_tcf

    Press Enter when prompted for a passphrase.

  2. Copy public key to the target: scp ~/.ssh/id_rsa_tcf.pub {username}@{target_host}:
  3. Connect to the target system: ssh {username}@{target_host}
  4. Run sudo su - on the target system
  5. Create ~/.ssh directory if it doesn't already exist: mkdir ~/.ssh
  6. Update ~/.ssh directory permissons to 700: chmod 700 ~/.ssh
  7. Add public key to the ~/.ssh/authorized_keys file: cat ~{username}/id_rsa_tcf.pub >> ~/.ssh/authorized_keys
  8. Next, configure the TCF connection. See the instructions in the Configure the TCF connection section below.

For a Windows* host

  1. Install PuTTY SSH client: PuTTY download page

  2. Launch the PuTTY Key Generator using the puttygen.exe file

  3. Click the Generate button (with all default settings intact) to generate keys

  4. Save the private key to your local drive: C:\Users\{username}\Documents\linux_private_key.ppk

    Keep the PuTTY Key Generator open for the next steps.

  5. Run PuTTY and connect to the target system
  6. Run sudo su - on the target system
  7. Create ~/.ssh directory if it doesn't already exist: mkdir ~/.ssh
  8. Update ~/.ssh directory permissons to 700: chmod 700 ~/.ssh
  9. Create and open the ~/.ssh/authorized_keys file in a text editor: pico ~/.ssh/authorized_keys
  10. Copy the public key from the PuTTY Key Generator and paste it to the editor.

  11. Save the file and exit the editor.
  12. Next, configure the TCF connection. See the instructions in the Configure the TCF connection section below.

Configure the TCF connection

Follow these steps to configure the TCF connection using SSH keys.

  1. In the toolbar, click New Connection.
  2. Select Connection for building in a container and running on Linux and click Next.
  3. On the New Connection window, enter a Connection Name and IP address. Click Finish.
  4. On the Login window, select the Public key login tab.
  5. For Username, enter root
  6. Browse to the Private Key:

    For Windows: Use the path you selected in step 4 in the "For a Windows* host" section above; for example, C:\Users\{username}\Documents\linux_private_key.ppk

    For Linux and macOS: The path is /home/{username}/.ssh/id_rsa_tcf

    Note

    For Linux Ubuntu you will need to press Ctrl + H to show hidden directories such as .ssh

CAUTION

When you connect to your target system this way, Intel System Studio copies a TCF agent to your target, which is listening for connections from any computer on your local network. The IDE target connection dialog asks for authentication credentials to facilitate transferring and starting the TCF agent on your target device; however, once running, the TCF agent does NOT require authentication to perform its actions. Therefore, any user that has network access to your target device can connect to it and use the TCF agent to run arbitrary code on your target device. If you start the agent as root as described in this section, then anyone with network access to your device can run arbitrary code on your device without any authentication.

Configure network proxy settings

Follow these steps to set up network proxy settings in Intel System Studio. If you're on an open network, skip these steps.

  1. Start Intel System Studio.
  2. Choose Window > Preferences > General > Network Connections to open the Network Connections page.
  3. From the Active Provider drop-down list, select Manual.
  4. Provide the appropriate proxy information for your network, as shown in the image below.

    Note

    Eclipse only needs the HTTP, HTTPS and Proxy bypass settings. For most networks it is best to leave the SOCKS proxy value empty.
  5. Click OK.

Create a Hello World Application

These steps use the Intel® C++ Compiler to build and run a sample Hello World application on a local Linux* system.

Step 1: Create a New Project

  1. In Eclipse*, click File > New > Project.

  2. Expand Application Development and select Project to build and run on this Linux Operating System.

  3. Click Next.

  4. Select Intel® C++ Compiler (ICC) and click Next.

  5. Type a name for the project and select the use default location check box.

  6. Expand Intel® Compiler and select Hello World. Click Finish.

    The project opens in the Eclipse* workspace.

Step 2: Build the Application

  1. In the Project Explorer list, click the name of your project.

  2. In the toolbar, click the Build button to build the project.

    The results appear in the Console.

Step 3: Run the Application

  1. In the Project Explorer list, click the name of your project.

  2. In the toolbar, click the Run button.

  3. Select Local C/C++ Application and click OK.

    Your project runs. The results appear in the Console.

    If the project does not exit automatically, click the red Terminate icon that appears on the Console panel.

  4. To debug, click the Debug button and select the name of your project from the drop-down list.

Find More

Resource Description

Code Samples and Tutorials

Intel provides downloadable sample code and tutorials, which guide a new user through the basic product features: The sample code illustrates common scenarios, and the corresponding tutorials show how the build tools can be used to create and optimize code.

Intel® C++ Compiler Getting Started Guide

Introductory information and links to additional help for the Intel® C++ Compiler

Getting Started with Intel® Math Kernel Library

Introductory information and links to additional help for the Intel® Math Kernel Library

Intel® Threading Building Blocks

Introductory information and links to additional help for the Intel® Threading Building Blocks

Intel® Integrated Performance Primitives

Introductory information and links to additional help for the Intel® Integrated Performance Primitives

Intel® Data Analytics Acceleration Library

Introductory information and links to additional help for the Intel® Data Analytics Acceleration Library

Debugging with GDB

Introductory information and links to additional help for the GNU* Project Debugger (GDB) Application Debugger - Linux* targets only

Intel® System Studio Log Files

The Intel® System Studio installer writes log files to /tmp, one for the user and one for root (when the installer is run with sudo). These log file names start with intel.pset, end with a timestamp, and have the extension *.log. For example: /tmp/intel.pset.auser.ubuntu_10.25.19.47.47.2017.log

Intel® System Studio writes pairs of log files to a subdirectory in /tmp. The subdirectory name has the format iss_env_$USER_$TIMESTAMP. The iss_env.log file contains environment settings. The eclipse.log file contains a session log. For example: /tmp/iss_env_auser_20171025215622/eclipse.log and /tmp/iss_env_auser_20171025215622/iss_env.log

Additional Documentation

Use the online documentation for the latest content.

A downloadable ZIP file containing all Intel® System Studio documentation is available for offline use from https://software.intel.com/en-us/articles/download-documentation-intel-system-studio-current-previous.

Intel® System Studio Product Page

Visit this page for support and the latest online documentation.

Legal Information

Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.

Microsoft, Windows, and the Windows logo are trademarks, or registered trademarks of Microsoft Corporation in the United States and/or other countries.

*Other names and brands may be claimed as the property of others.

© Intel Corporation

Optimization Notice: 
For more complete information about compiler optimizations, see our Optimization Notice.