здравствуйте, есть такой 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 , то все отлично проскакивает... в чем может быть проблема?
На самом деле проблема в том что у вас в качестве компилятора будет использоваться gcc (cc), а не g++ (у меня получилось так), make почему то проигнорировал CC = g++
(чтобы быть уверенным, что у вас также приложите полный вывод make). Или добавьте в LIBS -lstdc++
, или, что правильно, для С++ используйте CXX вместо СС и CXXFLAGS вместо CFLAGS, собственно их для того и придумали, чтобы с C++ кодом работать.
P.S. А как у вас вообще дошло до линковки, у меня без правки цели file1.o
падало, так как в ней создавался файл connects.o
, а не file1.o
.
Имеется vector<vector<char>> и файл с текстомЦель: ввод этого текста в двумерный вектор
Задача - создать класс Группа, содержащий массив объектов класса Студент, и добавить в него меню для работы с группойЯ решил реализовать меню...
У меня есть таблица компании, таблица недвижимости и таблица с параметрами недвижимостиПри выборе недвижимости, например квартиры на съем,...