Référence non définie dans le makefile Linux

Je veux construire mon application sous Linux mais je ne peux pas obtenir mon makefile pour le faire.
les problèmes sont les bibliothèques statiques avec lesquelles je veux créer un lien. Je reçois beaucoup de messages d’erreur “non définis” comme:

undefined reference to `std::basic_ssortingng<char, std::char_traits, std::allocator >::~basic_ssortingng()' 

ou

 undefined reference to `cgicc::Cgicc::Cgicc(cgicc::CgiInput*)' 

Voici mon makefile:

 CXX = gcc INCL_CGICC = ../cgicc-3.2.9 INCL_OPENSSL = ../openssl-1.0.0e/include INCL_LOG4CPLUS = ../log4cplus-1.0.4/include INCL_BOOST = ../boost_1_46_1 INCLUDES = -I$(INCL_CGICC) -I$(INCL_OPENSSL) -I$(INCL_LOG4CPLUS) -I$(INCL_BOOST) CXXFLAGS = -Wall -D_LINUX -DVERSNUM=2 -DVERSMAJOR=0 -DVERSMINOR=0 $(INCLUDES) TARGET = myapp OBJS = Main.o all: $(TARGET) ssortingp -s $< mv -f $< release $(TARGET): $(OBJS) $(CXX) -static -o $@ $(OBJS) \ ../cgicc-3.2.9/cgicc/.libs/libcgicc.a \ ../openssl-1.0.0e/libssl.a \ ../openssl-1.0.0e/libcrypto.a \ ../log4cplus-1.0.4/src/.libs/liblog4cplus.a \ -ldl -lpthread %.o: %.cpp $(CXX) $(CXXFLAGS) -c $< 

Le problème est que je n’ai aucune idée de makefiles. Je viens de copier un existant et j’ai essayé de l’ajuster. N’a pas semblé fonctionner, et je ne peux pas trouver un exemple de fichier Make qui inclut des bibliothèques statiques.

CXX = gcc

Vous établissez un lien avec gcc plutôt qu’avec g++ , donc -lstdc++ n’est pas lié par défaut. Notez que l’utilisation de gcc pour comstackr des sources C ++ fonctionne correctement, car g++ est appelé implicitement dans ce cas.

Si vous n’avez aucune idée sur l’écriture de Makefiles, vous devriez peut-être jeter un coup d’œil à certains générateurs de Makefile, par exemple, autotools, cmake, etc.