Professional Documents
Culture Documents
C++ Lecture Make File
C++ Lecture Make File
Engineering: How to make 'things' work / how to develop products / how to convert
ideas into products
Software Engineering: Concerned with developing software products, how to sell the
products, how to provide customer support/service
Types of software products
Generic Product: SRS (Software Requirement Specification) is generated by the
developer itself. SRS is converted into a product and it is sold to any
customer
How about this idea? Develop a generic system and customize it to specific application.
System and
software design
Implementation
and unit testing
Operation and
maintenance
SIMPUTER
Addition()
Matrix_Addition() Sin() Linear_Search()
Subtraction()
Matrix_Multiply() Cos() Binary_Search()
Multiplication()
Determinant() Random() Ternary_Search()
Division()
Inverse() Binomial() Merge_sort()
Factorial()
Eigenvalue() Poisson() Insertion_sort()
Power()
Std_deviation() Selection_sort()
DECLARATION (Separating INTERFACE from Implementation)
// BASIC.h // LINEAR.h //
// SCIENTIFIC.h
SORT_SEARCH.h
Class Class
Class Scientific_OP
Basic_Operation Linear_Algebra Class Sort_Search
{
{ { {
private:
private: private: private:
Public:
Public: Public: Public:
Sin();
Addition(); Bin_search();
Cos();
Multiply(); Matrix_Addition(); Merge_sort();
Random();
Factorial(); Matrix_Multiply(); Insertion_sort();
.
. Determinant(); .
};
}; }; };
DEFINITION ( IMPLEMENTATION)
// BASIC.cpp
1. Where will you include main() - only
#include”BASIC.h”
once in the main file
Basic_Operation:: Addition()
{ 2. Does each .cpp contain main() - NO
SIMPUTER.h SIMPUTER.cpp
#include”Simputer.h”
#include<iostream.h>
#include”Basic.h” Main ()
#include”Linear_algebra.h”
#include”Scientific.h” // create objects
#include”Sorting_Searching.h”
Simpute simpute_object;
Class Simpute
{ simpute_object.accept_input()
private: {
Public:
select_operation() }
accept_input()
}; Basic_Operation Basic_object;
Basic_object.addition()
Modes of Compilation when multiple files involved
all: FINAL_PRODUCT
simputer.o:simputer.cpp
g++ -c simputer.cpp Black labels : Target
Blue labels: Dependencies
basic.o: basic.cpp Red labels: Command
g++ -c basic.cpp
To create executable
Linear_Algebra.o: Linear_Algebra.cpp
Run
g++ -c Linear_Algebra.cpp
Make all
Scientific_operations.o: Scientific_operations.cpp
g++ -c Scientific_operations.cpp
To see the product
./FINAL_PRODUCT
Sorting_Searching.o: Sorting_Searching.cpp
g++ -c Sorting_Searching.cpp
Product Delivery
SIMPUTER (Main
folder)
Src folder: all .cpp files + makefile
inclu Obj folder: all .o files
src obj doc simputer
de include folder: all .h files
Doc folder: Readme file, User doc,
technical doc
Simputer: executable file
Revisiting Makefile
All: Final_Product
object/simputer.o : src/simputer.cpp
object/Basic.o : src/Basic.cpp