Collected boost version 1.37. I want to build a program.

Makefile

PROJECT = test SOURCES = main.cpp Connection.cpp OBJECTS = $(SOURCES:.cpp=.o) INC = -I./boost/include LIBS = -lboost_system-gcc46-1_37 -lboost_thread-gcc46-mt-1_37 -lpthread LDFLAGS = -L./boost/lib test: g++ -c $(INC) $(SOURCES) g++ -lrt $(LDFLAGS) -o $(PROJECT) $(OBJECTS) $(LIBS) rm -f *.d *.o clean: rm -f *.d *.o .PHONY: clean 

Connection.h

 #define BOOST_SYSTEM_NO_DEPRECATED #include <boost/asio.hpp> using namespace boost::asio; using namespace boost::system; class Connection { public: Connection(io_service& service); private: ip::tcp::socket socket_; }; 

Connection.cpp

 #include "Connection.h" Connection::Connection(io_service& service) : socket_(service) {} 

When building the following error

g ++ -c -I./boost/include main.cpp Connection.cpp g ++ -lrt -L./boost/lib -o test main.o Connection.o -lboost_system-gcc46-1_37 '-lboost_thread-gcc46-mt-1_37 -lpthread Connection.o: In function `boost :: system :: error_code :: error_code () ':

Connection.cpp (.text._ZN5boost6system10error_codeC2Ev [_ZN5boost6system10error_codeC5Ev] + 0x17): undefined reference to `boost :: system :: system_category () '

Connection.o: In function `boost :: asio :: error :: get_system_category () ':

Connection.cpp (.text._ZN5boost4asio5error19get_system_categoryEv [boost :: asio :: error :: get_system_category ()] + 0x5): undefined reference to `boost :: system :: system_category () '

collect2: ld returned 1 exit status

make: *** [basler] Error 1

What is this mistake for?

    1 answer 1

    Lost another library. "libboost_system-gcc46-mt-1_37" (or maybe without mt, search for boost_system).

    • so it is, tried and with mt and without - feelGood
    • one
      I tried it (the main one had to be minimal). Everything worked, just fixed one line LIBS = -lboost_system -lboost_thread -lpthread which distribution? - KoVadim
    • Of course, there was a distribution of OS. - KoVadim
    • OpenSuse 12.1 - feelGood