что не так в makefile

379
22 февраля 2017, 21:39

здравствуйте, есть такой makefile:

СC= g++
CFLAGS= -c -pipe -g -Wall -W -I.
LIBS=   -lboost_system \
        -lpthread
TARGET= targ
OBJECTS= main.o \
         file1.o

all : $(TARGET)
$(TARGET): $(OBJECTS)
    $(CC) -o $(TARGET) $(OBJECTS) $(LIBS)
main.o : main.cpp
    $(CC) $(CFLAGS)  main.cpp 
file1.o : connects.cpp
    $(CC) $(CFLAGS)  connects.cpp

вылетает ошибка main.o: неопределённая ссылка на символ «_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc@@GLIBCXX_3.4.21» /usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/libstdc++.so.6: error adding symbols: DSO missing from command line collect2: ошибка: выполнение ld завершилось с кодом возврата 1 Makefile:15: ошибка выполнения рецепта для цели «targ»

однако если вручную все сделать g++ -o targ main.o file1.o -lboost_system -lpthread , то все отлично проскакивает... в чем может быть проблема?

Answer 1

На самом деле проблема в том что у вас в качестве компилятора будет использоваться gcc (cc), а не g++ (у меня получилось так), make почему то проигнорировал CC = g++ (чтобы быть уверенным, что у вас также приложите полный вывод make). Или добавьте в LIBS -lstdc++, или, что правильно, для С++ используйте CXX вместо СС и CXXFLAGS вместо CFLAGS, собственно их для того и придумали, чтобы с C++ кодом работать.

P.S. А как у вас вообще дошло до линковки, у меня без правки цели file1.o падало, так как в ней создавался файл connects.o, а не file1.o.

READ ALSO
Ввод строк символами в двумерный вектор

Ввод строк символами в двумерный вектор

Имеется vector<vector<char>> и файл с текстомЦель: ввод этого текста в двумерный вектор

339
Не работает cin

Не работает cin

Задача - создать класс Группа, содержащий массив объектов класса Студент, и добавить в него меню для работы с группойЯ решил реализовать меню...

285
Очень медленно работает выборка INNER JOIN - MySQL

Очень медленно работает выборка INNER JOIN - MySQL

У меня есть таблица компании, таблица недвижимости и таблица с параметрами недвижимостиПри выборе недвижимости, например квартиры на съем,...

280