Votre question
Résolu

Projet sous Linux c++

Dernière réponse : dans Systèmes d'exploitation
18 Avril 2017 02:01:00

Bonjour, j'ai un projet à faire en utilisant Makefile et j'ai des erreurs là dessus, quelqu'un sait me le rectifier , ci dessous les étapes que je suive, merciii à l'avance

Premièrement, la configuration des interfaces :
Sous ubuntu
(su username)
Une seule interface en bridge, puis la configure avec l’interface dhcp en static (ens33) :
nano /etc/network/interfaces
Auto eth2
iface eth2 inet static
address 10.0.0.x
netmask 255.255.255.0
network 10.0.0.0
Pour le redémarage du système :
sudo /etc/init.d/networking restart ou service network restart ou reboot
apt-get install git-all
sudo apt-get install build-essential
sudo apt-get install ssh (ubuntu) // apt-get install ssh(debian)
Puis la création des fichiers et création du répository… :
Bonjour voici une réponse qui pourra vous aider.
Serveur: (Debian)
mkdir RepositoryGit
cd RepositoryGit
git init --bare
chownuserName-client : userName-client /home/user/RepositoryGit -R (path repo serveur)
puis sous le client
création des dossiers :
On crée le prog dans la branche master puis on crée la branche dev prcd l'éxecuter
mkdir Project1 src include bin (puis nano (pour la création des fichiers de codes source)main.cpp add.cpp => src add.h => include)
http://www.learncpp.com/cpp-tutorial/19-header-files/
Puis dans le projet: sous le client
gitinit
gitadd -A
git config --global user.name "Name"
git config --global user.email "Name@hotmail.com"
git config --list
git commit -m "Création du programme"
git commit -m "firt1" --allow-empty ?
Commandes supp
pr supp une branche : git branch -D [name of branch]
pr supp les commit de master : git reset --soft HEAD^
pour supprimer une commit précise : git reset --hard {num commit}

Autres pages sur : projet linux

18 Avril 2017 02:34:55

Bonjour,
Pour exécuter un projet en utilisant Makefile, il y a 3 méthode:

1) Makefile
# addmake: src/main.cpp src/add.cpp
# g++ -o bin/addmake src/main.cpp src/add.cpp -I include
Exécution: ./bin/addmake
CC= g++
CFLAGS=
LDFLAGS=
EXEC= addmake
INC_DIR=./include
SRC_DIR=./src
SRC= $(wildcard $(SRC_DIR)/*.cpp)
OBJ=$(SRC:.cpp=.o)
all: $(EXEC)
$(EXEC): $(OBJ)
$(CC) -o $@ $^ $(LDFLAGS)
add.o: $(INC_DIR)/add.h
%.o: %.cpp
$(CC) -c $< -o $@ -I $(INC_DIR) $(CFLAGS)
clean:
rm $(SRC_DIR)/*.o
mrproper:clean
rm $(EXEC)

pour tester :
make ou make addmake pr build, afficher les erreurs....
pr éxecuter ./addmake
make mrpropergit
//////////////////////////////////////////////////
2) lib statique
Lib statique:
g++ -c src/add.cpp -I include/
ar -q libadd.aadd.o
g++ src/main.cpp libadd.a -o bin/addmake -I include/
./addmake
3) Lib dynamique:
g++ -c src/add.cpp -fPIC -I include/
g++ -sharedadd.o -o libadd.so
g++ src/main.cpp libadd.so -o bin/addmake-I include/
./bin/addmake ????? WHYYY erreur (donc y aurra erreur)
création reperoire lib
export LD_LIBRARY_PATH=./lib/:$LD_LIBRARY_P
echo $LD_LIBRARY_PATH (pour verifier la creation du dossier lib)
./bin/addmake

Vous pouvez créer des librairies dynamiques en utilisant Makefile, pour plus d'informaions:
https://openclassrooms.com/forum/sujet/makefile-et-bibl...
http://stackoverflow.com/questions/26689759/makefile-fo...

Pour ce que vous avez écris concernant Git, je ne peux pas vous aider. Je ne comprends pas qu'est ce que vous voulez exactement.

m
0
l

Meilleure solution

18 Avril 2017 02:55:57

Il existe aussi d'autres manières pour exécuter le programme.


I) l’exécution simple se fait en trois manières sans makefile First Commit
Créer la branche dev et se déplacer dessus : git checkout -b dev
pour voir les branches: git branch
 Méthode a:
g++ -E src/*.cpp -I include
g++ -c src/*.cpp -I include
g++ -s src/*.cpp -I include
g++ main.oadd.o
./a.out
Ls -a
 Méthodeb:
g++ -o bin/addmake src/*.cpp-I include
ou bien
g++ -o bin/addmake src/main.cpp src/add.cpp -I include
l’execution se fait : ./bin/addmake
 méthode c:
g++ -c src/add.cpp -I include
g++ -c src/main.cpp -I include
g++ main.oadd.o
./a.out
Merge
Puis on exécute via la méthode 1 le prog
git status
git add -A
git commit -m "Execution prog meth normale"
on bascule vers master (git checkout master , pour revenir a la branche master)
touch file.txt
git add -A
git commit -m "Execution prog meth normale"aa
git merge dev
git log --oneline --graph
N.B: les memes étapes pr les autres !



et à propos du push comment faire? vous avez une idée??
merciii
partage
Contenus similaires
18 Avril 2017 03:19:19

Ta question n'est pas précise, mais voilà un exemple que j'espère qu'il sera utile pour vous:

git remote–v
git remote add origin user-server@ipServer:/home/user/RepositoryGit
gitremote -v
git remote rm origin
Sur le serveur debian
git push origin master

Sur la machine de clonage
Config d'interface
crer un nouveau dossier:
mkdir project 2
cd projet2
git clone user-server@ipServer:/home/user/RepositoryGit
Après clonage:
sur projet2 : cd Gitrepository =>touch file.txt
git add -A
git commit -m "testing clonage"
git log --oneline
git push pr renvoyer sur le serveur
git pull origin master
sur le premier projet ,
touch testclt1.txt
gitadd -A
git push origin master
Sur le 2 eme projet
cd Gitrepo
git pull
m
0
l
18 Avril 2017 10:23:45

Hello,

Sans parler du code ... la conf réseau est fausse. On ne peut pas être à la fois DHCP et statique. Soit on fixe dans le serveur DHCP l'ip de la machine soit on fixe en dur l'ip sur une tranche réservé dans le fichier de config de l'eth0.

Bye
m
0
l
18 Avril 2017 12:26:15

En fait voiçi la réponse que vous cherchez je suppose: Mf +lIB

CXX ?= g++

# path #
SRC_PATH = src
BUILD_PATH = build
BIN_PATH = bin
LIB_PATH = lib

# executable #
BIN_NAME = main.exe

# extensions #
SRC_EXT = cpp

# code lists #
SOURCES = src/main.cpp
OBJECTS = $(SOURCES:src/main.cpp=build/main.o)

# flags #
COMPILE_FLAGS = -std=c++11 -Wall -Wextra -g
LDFLAGS = -L $(LIB_PATH) -lfunctions
INCLUDES = -I include/
# Space-separated pkg-config libraries used by this project
LIBS = -lfunctions

all: $(BIN_PATH)/$(BIN_NAME)

$(BIN_PATH)/$(BIN_NAME): $(OBJECTS)
(Tabulation) @echo "Linking: $@"
(Tabulation) $(CXX) $(OBJECTS) -o $@ $(LIB_PATH)/libfunctions.so

$(BUILD_PATH)/main.o: src/main.cpp
(Tabulation) @echo "Compiling: $< -> $@"
(Tabulation) $(CXX) $(COMPILE_FLAGS) $(INCLUDES) -c $< -o $@

clean:
(Tabulation) @echo "Suppression du de l'executable : $(BIN_NAME) "
(Tabulation) @$(RM) $(BIN_PATH)/$(BIN_NAME)
(Tabulation) @echo "Suppression des fichiers .o "
(Tabulation) @$(RM) -r $(BUILD_PATH)/*

.PHONY: lib
lib:
(Tabulation) $(CXX) -c -fPIC $(SRC_PATH)/functions.cpp -o $(BUILD_PATH)/functions.o $(INCLUDES)
(Tabulation) $(CXX) -shared -fPIC $(BUILD_PATH)/functions.o -o $(LIB_PATH)/libfunctions.so




Ecrivez moi au cas vous trouvez des erreurs.
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS