Commit a7588513 authored by Carlos Jose's avatar Carlos Jose
Browse files

biblioteca e prova lp refeita

parent 2ec59229
Pipeline #5477 skipped
File added
#include <iostream>
#include <stdexcept>
using namespace std;
int main() {
int** p = new int*[50];
try {
for (int i = 0 ; i<50; i++){
p[i] = new int[20000000];
}
} catch(invalid_argument& e) {
cout<< e.what() << endl;
}
return 0;
}
\ No newline at end of file
INC_DIR = include
SRC_DIR = src
OBJ_DIR = build
LIB_DIR = lib
CC = g++
CFLAGS = -Wall -pedantic -std=c++11 -ansi -I. -I$(INC_DIR)
ARCHIVE = ar
linux: minhalib.a minhalib.so prog_estatico prog_dinamico
windows: minhalib.lib minhalib.dll prog_estatico.exe prog_dinamico.exe
# LINUX
minhalib.a: $(SRC_DIR)/funcoes1.cpp $(SRC_DIR)/funcoes2.cpp $(INC_DIR)/minhalib.h
$(CC) $(CFLAGS) -c $(SRC_DIR)/funcoes1.cpp -o $(OBJ_DIR)/funcoes1.o
$(CC) $(CFLAGS) -c $(SRC_DIR)/funcoes2.cpp -o $(OBJ_DIR)/funcoes2.o
$(AR) rcs $(LIB_DIR)/$@ $(OBJ_DIR)/funcoes1.o $(OBJ_DIR)/funcoes2.o
@echo "+++ [Biblioteca estatica criada em $(LIB_DIR)/$@] +++"
minhalib.so: $(SRC_DIR)/funcoes1.cpp $(SRC_DIR)/funcoes2.cpp $(INC_DIR)/minhalib.h
$(CC) $(CFLAGS) -fPIC -c $(SRC_DIR)/funcoes1.cpp -o $(OBJ_DIR)/funcoes1.o
$(CC) $(CFLAGS) -fPIC -c $(SRC_DIR)/funcoes2.cpp -o $(OBJ_DIR)/funcoes2.o
$(CC) -shared -fPIC -o $(LIB_DIR)/$@ $(OBJ_DIR)/funcoes1.o $(OBJ_DIR)/funcoes2.o
@echo "+++ [Biblioteca dinamica criada em $(LIB_DIR)/$@] +++"
prog_estatico:
$(CC) $(CFLAGS) $(SRC_DIR)/main.cpp $(LIB_DIR)/minhalib.a -o $(OBJ_DIR)/$@
prog_dinamico:
$(CC) $(CFLAGS) $(SRC_DIR)/main.cpp -L$(LIB_DIR) $(LIB_DIR)/minhalib.so -o $(OBJ_DIR)/$@
# WINDOWS
minhalib.lib: $(SRC_DIR)/funcoes1.cpp $(SRC_DIR)/funcoes2.cpp $(INC_DIR)/minhalib.h
$(CC) $(CFLAGS) -c $(SRC_DIR)/funcoes1.cpp -o $(OBJ_DIR)/funcoes1.o
$(CC) $(CFLAGS) -c $(SRC_DIR)/funcoes2.cpp -o $(OBJ_DIR)/funcoes2.o
$(AR) rcs $(LIB_DIR)/$@ $(OBJ_DIR)/funcoes1.o $(OBJ_DIR)/funcoes2.o
@echo "+++ [Biblioteca estatica criada em $(LIB_DIR)/$@] +++"
minhalib.dll: $(SRC_DIR)/funcoes1.cpp $(SRC_DIR)/funcoes2.cpp $(INC_DIR)/minhalib.h
$(CC) $(CFLAGS) -c $(SRC_DIR)/funcoes1.cpp -o $(OBJ_DIR)/funcoes1.o
$(CC) $(CFLAGS) -c $(SRC_DIR)/funcoes2.cpp -o $(OBJ_DIR)/funcoes2.o
$(CC) -shared -o $(LIB_DIR)/$@ $(OBJ_DIR)/funcoes1.o $(OBJ_DIR)/funcoes2.o
@echo "+++ [Biblioteca dinamica criada em $(LIB_DIR)/$@] +++"
prog_estatico.exe:
$(CC) $(CFLAGS) $(SRC_DIR)/main.cpp $(LIB_DIR)/minhalib.lib -o $(OBJ_DIR)/$@
prog_dinamico.exe:
$(CC) $(CFLAGS) $(SRC_DIR)/main.cpp $(LIB_DIR)/minhalib.dll -o $(OBJ_DIR)/$@
clean:
@echo "Removendo arquivos objeto e executaveis/binarios..."
@rm -rf $(OBJ_DIR)/*
#ifndef _MINHALIB_H_
#define _MINHALIB_H_
namespace exemplo
{
extern "C" void imprime(std::string frase);
extern "C" int soma(int valorA, int valorB);
template <typename T>
T max (T a, T b)
{
return (a > b) ? a : b;
}
}
#endif
#include <iostream>
#include "minhalib.h"
using namespace std;
namespace exemplo
{
void imprime(std::string frase)
{
cout << frase << endl;
}
}
\ No newline at end of file
#include <iostream>
#include "minhalib.h"
using namespace std;
namespace exemplo
{
int soma(int valorA, int valorB)
{
return (valorA+valorB);
}
}
#include <iostream>
#include "minhalib.h"
using namespace std;
using namespace exemplo;
int main(void)
{
string frase = "Olá mundo!";
imprime(frase);
cout << "Resultado da soma 5+6: " << soma(5,6) << endl;
cout << "O maior valor entre 5 e 6: " << exemplo::max(5,6) << endl;
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment