undefined reference avec boost lorsque j'essaie de compiler
j'ai beaucoup d'erreurs lorsque j'essaie de compiler mon serveur avec boost.
Ici, c'est mon makefile :
NAME = serveur
SRCS = Serveur/main.cpp \
Serveur/Client.cpp \
Serveur/Commande.cpp \
Serveur/My_exception.cpp \
Serveur/Network.cpp \
Serveur/Server.cpp
#####################################################
OBJS = $(SRCS:.cpp=.o)
CC = g++
RM = rm -f
CFLAGS = -g -W -Wall -Werror
INCL = ./Serveur/boost_1_47_0
LIB = ./Serveur/boost_1_47_0/stage/lib/
NLIB = -lboost_system -lboost_system-mt -lboost_filesystem -lboost_filesystem-mt
#####################################################
$(NAME) : $(OBJS)
@$(CC) $(OBJS) -I$(INCL) -L$(LIB) $(NLIB) -o $(NAME)
@printf "\n 3[33m[Message]3[39m Compilation under Linux done\n\n"
.cpp.o :
@$(CC) $(CFLAGS) -I$(INCL) -L$(LIB) $(NLIB) -c $< -o $@
@printf " 3[34m[Compilation]3[39m %s\n" $<
re : fclean all
all : $(NAME)
clean :
@$(RM) *~ $(OBJS)
@printf " 3[31m[Delete] 3[39m%s\n" $(OBJS)
fclean : clean
@$(RM) $(NAME)
@printf "\n 3[31m[Delete] 3[39m%s\n\n" $(NAME)
Après "googler" j'ai trouvé qu'il est nécessaire de mettre les -lboost_filesystem
mais il n'est pas repris le travail et il y a des erreurs :
Serveur/main.o: In function `__static_initialization_and_destruction_0':
/home/abad_a//rendulocal/tech3/cpp/babel-2014-abad_a/Serveur/./Serveur/boost_1_47_0/boost/system/error_code.hpp:214: undefined reference to `boost::system::generic_category()'
/home/abad_a//rendulocal/tech3/cpp/babel-2014-abad_a/Serveur/./Serveur/boost_1_47_0/boost/system/error_code.hpp:215: undefined reference to `boost::system::generic_category()'
/home/abad_a//rendulocal/tech3/cpp/babel-2014-abad_a/Serveur/./Serveur/boost_1_47_0/boost/system/error_code.hpp:216: undefined reference to `boost::system::system_category()'
Serveur/main.o: In function `error_code':
/home/abad_a//rendulocal/tech3/cpp/babel-2014-abad_a/Serveur/./Serveur/boost_1_47_0/boost/system/error_code.hpp:315: undefined reference to `boost::system::system_category()'
Serveur/main.o: In function `boost::asio::error::get_system_category()':
/home/abad_a//rendulocal/tech3/cpp/babel-2014-abad_a/Serveur/./Serveur/boost_1_47_0/boost/asio/error.hpp:216: undefined reference to `boost::system::system_category()'
Serveur/Client.o: In function `__static_initialization_and_destruction_0':
/home/abad_a//rendulocal/tech3/cpp/babel-2014-abad_a/Serveur/./Serveur/boost_1_47_0/boost/system/error_code.hpp:214: undefined reference to `boost::system::generic_category()'
/home/abad_a//rendulocal/tech3/cpp/babel-2014-abad_a/Serveur/./Serveur/boost_1_47_0/boost/system/error_code.hpp:215: undefined reference to `boost::system::generic_category()'
/home/abad_a//rendulocal/tech3/cpp/babel-2014-abad_a/Serveur/./Serveur/boost_1_47_0/boost/system/error_code.hpp:216: undefined reference to `boost::system::system_category()'
Serveur/Network.o: In function `__static_initialization_and_destruction_0':
/home/abad_a//rendulocal/tech3/cpp/babel-2014-abad_a/Serveur/./Serveur/boost_1_47_0/boost/system/error_code.hpp:214: undefined reference to `boost::system::generic_category()'
/home/abad_a//rendulocal/tech3/cpp/babel-2014-abad_a/Serveur/./Serveur/boost_1_47_0/boost/system/error_code.hpp:215: undefined reference to `boost::system::generic_category()'
/home/abad_a//rendulocal/tech3/cpp/babel-2014-abad_a/Serveur/./Serveur/boost_1_47_0/boost/system/error_code.hpp:216: undefined reference to `boost::system::system_category()'
Serveur/Server.o: In function `__static_initialization_and_destruction_0':
/home/abad_a//rendulocal/tech3/cpp/babel-2014-abad_a/Serveur/./Serveur/boost_1_47_0/boost/system/error_code.hpp:214: undefined reference to `boost::system::generic_category()'
/home/abad_a//rendulocal/tech3/cpp/babel-2014-abad_a/Serveur/./Serveur/boost_1_47_0/boost/system/error_code.hpp:215: undefined reference to `boost::system::generic_category()'
/home/abad_a//rendulocal/tech3/cpp/babel-2014-abad_a/Serveur/./Serveur/boost_1_47_0/boost/system/error_code.hpp:216: undefined reference to `boost::system::system_category()'
collect2: ld returned 1 exit status
make: *** [serveur] Error 1
Ce que quelqu'un sait pourquoi ça ne marche pas?
OriginalL'auteur Adrien A. | 2011-11-19
Vous devez vous connecter pour publier un commentaire.
boost::filesystem
dépendboost::system
, de sorte que vous aurez à ajouter-lboost_system
, aussi.Êtes-vous toujours obtenir le
boost::system
erreurs?ouais, ils sont les mêmes erreurs
Deux choses me viennent à l'esprit. Tout d'abord, dans votre
INCL
variable que vous avez le répertoireServeur
, mais dans votreLIB
variable que vous avezServer
. Ainsi, l'un d'eux est mal orthographié? Deuxièmement, si cela ne fonctionne pas pouvez-vous aller pour vous lib et trouver le nom delibboost_filename
et la poster.bien sûr : libboost_date_time-vc100-mt-1_47.lib libboost_system-vc100-mt-1_47.lib libboost_date_time-vc100-mt-gd-1_47.lib libboost_system-vc100-mt-gd-1_47.lib libboost_regex-vc100-mt-1_47.lib libboost_thread-vc100-mt-1_47.lib libboost_regex-vc100-mt-gd-1_47.lib libboost_thread-vc100-mt-gd-1_47.lib libboost_serialization-vc100-mt-1_47.lib libboost_wserialization-vc100-mt-1_47.lib libboost_serialization-vc100-mt-gd-1_47.lib libboost_wserialization-vc100-mt-gd-1_47.lib
OriginalL'auteur rcollyer
Je suis en utilisant cygwin et la solution à ce problème est de relier les bibliothèques
L'invocation de l'éditeur de liens ressemblait à ceci:
OriginalL'auteur fourcube