C c compiling @ um mcsr
Advertisement
This presentation is the property of its rightful owner.
1 / 30

C/C++ Compiling @ UM/MCSR PowerPoint PPT Presentation

C/C++ Compiling @ UM/MCSR. Last modified: June 15, 2009. Outline. Surfing www.mcsr.olemiss.edu website Logging into the system via ssh Brief History of C/C++ languages Basic Structure and Syntax of C/C++ Programs A quick glance on vi editor

Download Presentation

C/C++ Compiling @ UM/MCSR

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


C c compiling @ um mcsr

C/C++ Compiling@ UM/MCSR

Last modified: June 15, 2009


Outline

Outline

Surfing www.mcsr.olemiss.edu website

Logging into the system via ssh

Brief History of C/C++ languages

Basic Structure and Syntax of C/C++ Programs

A quick glance on vi editor

A detailed look on compilers and compilingcommands

How to run a compiled file

Application of C/C++ Compiling


Logging into the system using ssh

Logging into the system using ssh

Logging into the system from Windows:

Start the secure shell client: Start->Programs->SSH Secure Shell->Secure Shell Client

Connect to willow: From the secure shell window, click Quick Connect. Then, from the Connect to Remote Host pop-up window, enter: Hostname: HostNameUser Name: UserName

Click Connect.

Logging into the system from Unix:

Start the Terminal:

Finder Utilities  Terminal

Type the following command:

ssh [email protected]

Enter your password

If you are a windows user and you want to download ssh:

Go to MCSR Web at www.mcsr.olemiss.edu and click on the Software Tab, followed by the Secure Shell link.

If you are a Unix, Linux, or MAC user, ssh will come with the operating system


A brief history of c language

A Brief History of C language

  • In the early 1970s, Dennis Ritchie of Bell Laboratories was engaged in a project to develop new operating system. C programming language was then developed.

  • In the early 1980's, also at Bell Laboratories, another C++ language was created. This new language was developed by Bjarne Stroustrup and was called C++ which was designed with OOP (Object Oriented Programming) features added to C without significantly changing the C component.


A simple c program

A Simple C Program

/* Take a number multiply it by 10 and display it */

#include <stdio.h>

main()

{

int number, result;

printf("Type in a number \n");

scanf("%d", &number);

result = number *10;

printf("The number multiplied by 10 equals %d\n", result);

}

Sample Program Output

Type in a number

23

The number multiplied by 10 equals 230


A simple c program1

A Simple C Program

/* Take a number multiply it by 10 and display it */

#include <stdio.h>

main()

{

int number, result;

printf("Type in a number \n");

scanf("%d", &number);

result = number *10;

printf("The number multiplied by 10 equals %d\n", result);

}

Sample Program Output

Type in a number

23

The number multiplied by 10 equals 230

Comments are set between /* and */


A simple c program2

A Simple C Program

/* Take a number multiply it by 10 and display it */

#include <stdio.h>

main()

{

int number, result;

printf("Type in a number \n");

scanf("%d", &number);

result = number *10;

printf("The number multiplied by 10 equals %d\n", result);

}

Sample Program Output

Type in a number

23

The number multiplied by 10 equals 230

The C pre-processor replaces this directivewith the contents of the stdio.h header file from the standard C library.


A simple c program3

A Simple C Program

/* Take a number multiply it by 10 and display it */

#include <stdio.h>

main()

{

int number, result;

printf("Type in a number \n");

scanf("%d", &number);

result = number *10;

printf("The number multiplied by 10 equals %d\n", result);

}

Sample Program Output

Type in a number

23

The number multiplied by 10 equals 230

Every C program must have one main function.


A simple c program4

A Simple C Program

/* Take a number multiply it by 10 and display it */

#include <stdio.h>

main()

{

int number, result;

printf("Type in a number \n");

scanf("%d", &number);

result = number *10;

printf("The number multiplied by 10 equals %d\n", result);

}

Sample Program Output

Type in a number

23

The number multiplied by 10 equals 230

Each variable must be explicitly defined as a specific type.


A simple c program5

A Simple C Program

/* Take a number multiply it by 10 and display it */

#include <stdio.h>

main()

{

int number, result;

printf("Type in a number \n");

scanf("%d", &number);

result = number *10;

printf("The number multiplied by 10 equals %d\n", result);

}

Sample Program Output

Type in a number

23

The number multiplied by 10 equals 230

The stdio library defines the printf() function for creating output.


A simple c program6

A Simple C Program

/* Take a number multiply it by 10 and display it */

#include <stdio.h>

main()

{

int number, result;

printf("Type in a number \n");

scanf("%d", &number);

result = number *10;

printf("The number multiplied by 10 equals %d\n", result);

}

Sample Program Output

Type in a number

23

The number multiplied by 10 equals 230

The stdio library defines the printf() function for creating output.

\n is the newline character


A simple c program7

A Simple C Program

/* Take a number multiply it by 10 and display it */

#include <stdio.h>

main()

{

int number, result;

printf("Type in a number \n");

scanf("%d", &number);

result = number *10;

printf("The number multiplied by 10 equals %d\n", result);

}

Sample Program Output

Type in a number

23

The number multiplied by 10 equals 230

The stdio library defines the scanf() function for capturing input.


A simple c program8

A Simple C Program

/* Take a number multiply it by 10 and display it */

#include <stdio.h>

main()

{

int number, result;

printf("Type in a number \n");

scanf("%d", &number);

result = number *10;

printf("The number multiplied by 10 equals %d\n", result);

}

Sample Program Output

Type in a number

23

The number multiplied by 10 equals 230

%d tells scanf() to interpret the input as a decimal value


A simple c program9

A Simple C Program

/* Take a number multiply it by 10 and display it */

#include <stdio.h>

main()

{

int number, result;

printf("Type in a number \n");

scanf("%d", &number);

result = number *10;

printf("The number multiplied by 10 equals %d\n", result);

}

Sample Program Output

Type in a number

23

The number multiplied by 10 equals 230

The = operator is used for assignment.

The * operator is used for multiplication.


A simple c program10

A Simple C Program

/* Take a number multiply it by 10 and display it */

#include <stdio.h>

main()

{

int number, result;

printf("Type in a number \n");

scanf("%d", &number);

result = number *10;

printf("The number multiplied by 10 equals %d\n", result);

}

Sample Program Output

Type in a number

23

The number multiplied by 10 equals 230

%d tells printf() to treat the value of the result variable as a decimal nbr.


Simple c program

Simple C++ Program

/* Take a number multiply it by 10 and display it */

#include <iostream>

int main()

{

int number, result;

std::cout<<"Type in a number “<< std::endl;

std::cin>>number;

result = number *10;

std::cout<<"The number multiplied by 10 equals “<<result;

}

Sample Program Output

Type in a number

23

The number multiplied by 10 equals 230

C++ pre-processor directives include different versions of the standard library packages.


Simple c program1

Simple C++ Program

/* Take a number multiply it by 10 and display it */

#include <iostream>

int main()

{

int number, result;

std::cout <<"Type in a number “<< std::endl;

std::cin >>number;

result = number *10;

std::cout<<"The number multiplied by 10 equals “<<result;

}

Sample Program Output

Type in a number

23

The number multiplied by 10 equals 230

std is an object which you can send messages to—messages such as:cout, cin, & endl.


Simple c program2

Simple C++ Program

/* Take a number multiply it by 10 and display it */

#include <iostream>

using namespace std;

int main()

{

int number, result;

cout <<"Type in a number “ << endl;

cin>>number;

result = number *10;

cout<<"The number multiplied by 10 equals “ <<result;

}

Sample Program Output

Type in a number

23

The number multiplied by 10 equals 230

You can use an object’s namespace, to keep from having to specify the name of the object each time you send it a message.


C c source files suffixes

C/C++ source files suffixes

  • .cpp, .cc, .c suffixes are used for C++ programs that are to be preprocessed, compiled and assembled

  • .c for C programs that are to be processed, compiled and assembled

  • .h or preprocessor (header) files


How to run compiled files

How to run compiled files

  • The compiling commands create an executable file known as a.out unless specified otherwise.

  • To execute your program, type ./a.out and press Enter.


Compilation details

Compilation Details

Source code

Assembly

Machine Code

object.cpp

object.s

object.o

object.h

Output

main.s

main.o

main.cpp


A detailed look into compilers and compiling commands

A detailed look into Compilers and Compiling commands

  • C/C++ Compilers at UM/MCSR:

    • Intel C++ Compiler on redwood andsequoia

    • MIPS C, MIPSpro C, and MIPSpro C++ version 7.4 compilers on Origin 2800 sweetgum

    • Portland Group, GNU, and MPICH Compilers on Beowulf Cluster mimosa

    • GNU C Compiler and SUN STUDIO 8 C/C++ Compilers on willow


Loading the appropriate intel compiler module

Loading the appropriate Intel Compiler Module

Several versions/builds of Intel compilers are available on redwood. To compile, you must first pick which compiler version module you want to load, then load it. Before you can use the module command, you must source the correct setup file for your shell.

. /usr/share/modules/init/sh (if using ssh) (There should be a space between . and /opt)

Then you use the module command:

module list (to see if any other versions of compiler modules are loaded)

module purge (to unload any other versions of compiler modules)

module list (to verify that other versions were successfully unloaded)

module avail (to see what versions of compiler modules are available to load)

For example, to load the latest 10.1 version of the C Compilers:

module load c101

module list

These are the names of the modules and the compiler versions they correspond to:

intel-compilers.7.1.037 for c 7.1

intel-compilers.8.0.042 for c 8.0

intel-compilers.8.0.046 for c 8.0

intel-compilers.9.0.027 for c 9.0

intel-compilers.9.1.046 for c 9.1

intel-compilers.cc.10.1.017 for c 10.1


Intel c compiler on redwood sequoia

Intel C++ Compiler on redwood & sequoia

Intel C/C++ Compilers(7.1, 8.0, 9.0, 9.1 & 10.0)

Before using the C/C++ Compiler on redwood, you must first load the appropriate Intel compiler module.

Then, to compile:

icc example.c if using the 8.0 or later compiler

ecc example.c if using the 7.1 compiler.

With Intel compilers, the invocation syntax is the same regardless of whether your source file is C or C++.


Sweetgum and mimosa

Sweetgum and Mimosa

Sweetgum: MIPSPro 7.4 Compilers, version 7.4

To compile with cc/CC on sweetgum, enter:

CC example.c

To find out more about compilers, enter:

man cc OR man CC

Mimosa: PGI CDK 7.2 Compilers

To compile with the C/C++ compilers, enter:

/usr/local/apps/pgi-7.2/linux86/7.2/bin/pgCC example.c


Gnu c compiler and sun studio 8 c c compilers on willow

GNU C Compiler and SUN STUDIO 8 C/C++ Compilers on willow

  • gcc file1.c command is used to compile and link a C program on willow

  • g++ file1.c command is used to compile and link a C++ program on willow


Willow common compiler flags

Willow & Common Compiler Flags

Sun Studio C/C++ Compilers, Version 5.5:

To compile with C/C++, enter:

cc example.c (C)

CC example.c (C++)

Compilers located in /ptmp/studio8/SUNWspro/bin

GNU C/C++ Compilers, Version 3.3.2

To compile with C/C++, enter:

gcc example.c (C)

g++ example.c (C++)

Compilers located in /usr/local/bin

Use which to see which compiler version is being found.

which cc

which CC

If there are no compilation errors this creates an executable file called a.out. To execute the C/C++ program, enter: ./a.out.


Exercise 1 compile c c on willow

Exercise 1: Compile C/C++ on willow

Log in to willow using the account: student

Change to your numbered working directory:

cd 1

Compile/execute hello.c using GNU C compiler

gcc hello.c

./a.out

Compile/execute simpleB.cpp using Sun’s C++

CC simpleB.cpp

./a.out

Try to compile hello.c using Sun’s C compiler

cc hello.c


Example c c flags

Example C/C++ Flags

cc <flag> <filename.c>

-c Compile or assemble the source files, but do not link.

-S Stop after the stage of compilation proper

-E Stop after the preprocessing stage

-o newFilename Name executable something besides a.out-V Show the compiler version (SUN)-vShow the compiler version (GNU)


Exercise 2 compiler options

Exercise 2: Compiler Options

Compile/execute hello.c using GNU C compiler, and name the executable file helloc.exe

gcc hello.c –o helloc.exe

./helloc.exe

Determine what version of the GNU compilers are installed

gcc -v

g++ -v

Determine version of installed Sun’s compiler

CC –V

/ptmp/studio8/SUNWspro/bin/cc -V


  • Login