|
|
|
|
Bonjour,
Je debute en c++, et je ne sais pas du tout comment sa fonctionne.
J'ai voulu installer un librairie mais n'ayant pas le mot de passe root, je l'ai installé dans mon home.
Donc dans le .cpp, j'ai mis :
#include "home/LIBCOV/include/cov.h"
Jusque la pas de soucis.
Je compile avec :
g++ -ggdb -o test test.cpp -I/home/LIBCOV/include -L/home/LIBCOV/lib
Mais des que j'appel un fonction de cette fameuse librairie, c'est la pagaille :
...
test.cpp:19: undefined reference to `covAlignment::GetNumSites()'
...
J'ai le meme message pour toutes les fonctions appelées ...
Alors comment lui dire ou son ses librairie autrement que comme je l'ai fait, ou ai je oublié quelque chose ..
merci
Salut,
|
Alors comment lui dire ou son ses librairie autrement que comme je l'ai fait, ou ai je oublié quelque chose ..
|
Bonjour,
gcc -c source.c -I$HOME/Appli/Include la compilation se fait normalement maintenant pour l'edition de lien, j'ai une librairie libmediastreamer.a qui se trouve dans $HOME/Appli/lib je dois faire comment pour cette edition de lien ? Q2) C'est quoi la différence entre les fichier file.a, file.la, file.lo, file.so ? ont il un rapport avec file.o ? Merci de votre aide, S'il y'a un site qui explique bien ceci, merci de me l'indiquer, Ciao |
http://www.developpez.com/ puis C/C++ tutoriel, gcc. j'ai pas trouver mieu pour l'instant malheuresement.
|
Tiens ca fait des années que je fais du c/c++ et j'ai jamais eu à utiliser ld sauf cas super spécifique. A ta place je ferais simplement un makefile. Crée un fichier Makefile contenant ceci (respecte bien les tabulations derriere les cibles !! (all: run: ...)):
CXX=g++ CXXFLAGS=-W -Wall -O2 SRC=\ plop1.cpp\ plop2.cpp\ plop3.cpp OBJ=\ plop1.o\ plop2.o\ plop3.o all: $(OBJ) $(CXX) $(CXXFLAGS) $(OBJ) main_plop.cpp -o plop.exe depend: g++ -MM $(SRC) > .dependfile %.o:%.cpp;$(CXX) $(CXXFLAGS) -c $< -o $@ run: ./plop.exe clean: rm -rf *.o .dependfile *.exe touch .dependfile ifeq (.dependfile,$(wildcard .dependfile)) include .dependfile endif Avec ici un fichier main_plop.cpp contenant la fonction main et plop1.cpp plop2.cpp plop3.cpp des modules. La commande make permettra ensuite d'utiliser ce fameux fichier.... Pour l'utiliser la première fois : make depend make Par la suite : make Et pour virer les .o et le .exe (ie les binaires) : make clean |