#boost #g #static-libraries #rhel #devtoolset
Вопрос:
У меня установлены статические библиотеки boost 1.73 (.a) и RHEL devtoolset-10,я выполняю следующие действия
scl enable devtoolset-10 bash
Проверьте, указывает ли LD_LIBRARY_PATH на
/opt/rh/devtoolset-10/root/usr/lib64:/opt/rh/devtoolset-10/root/usr/lib:/opt/rh/devtoolset-10/root/usr/lib64/dyninst:/opt/rh/devtoolset-10/root/usr/lib/dyninst:/opt/rh/devtoolset-10/root/usr/lib64:/opt/rh/devtoolset-10/root/usr/lib
Я установил CXX и CC в /opt/rh/devtoolset-10/root/bin/g и /opt/rh/devtoolset-10/root/bin/gcc соответственно
Это фрагмент моего файла создания
LPATH := -L/home/boost/lib/linux.2_6.x86_64 -L/opt/rh/devtoolset-10/root/bin/ -L/opt/rh/devtoolset-10/root/usr/lib/gcc/x86_64-redhat-linux/10 -L/opt/rh/devtoolset-10/root/usr/lib64 LFLAG := -lboost_filesystem -lboost_system -l:libstdc .a -l:libgcc.a -static .PHONY: all clean all: $(EXE) $(EXE): $(BUILTOBJ) $(CXX) -DBOOST_NO_CXX11_SCOPED_ENUMS -Xlinker -Map=rhel.map $(LPATH) -o $@ $(BUILTOBJ) $(LFLAG) $(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp $(CXX) -DBOOST_NO_CXX11_SCOPED_ENUMS $(INCLUDES) -c
lt; -o $@
$(OBJ_DIR)/%.o: %.c
mkdir -p $(@D)
$(CC) $(INCLUDES) -clt; -o $@
Ошибка сегментации возникает в этих трех местах..У меня есть функции повышения ,которые выдают ошибку, этоboost::файловая система::путь src(sourcepath);
src.filename() for(boost::filesystem::directory_iterator file(src); file!=boost::filesystem::directory_iterator(); file) boost::filesystem::remove_all(sourcepath);
Также фрагмент моего файла rhel.map
(boost::файловая система::путь::оператор/=(boost::файловая система::путь constamp;)) /opt/rh/devtoolset-10/root/usr/lib/gcc/x86_64-redhat-linux/10/libstdc .a(bad_alloc.o) /home/boost/lib/linux.2_6.x86_64/libboost_filesystem.a(каталог.o) (typeinfo для std::bad_alloc) /opt/rh/devtoolset-10/root/usr/lib/gcc/x86_64-redhat-linux/10/libstdc .a(class_type_info.o) obj/Действие.o (vtable для __cxxabiv1::__класс_тип_информация) /opt/rh/devtoolset-10/root/usr/lib/gcc/x86_64-redhat-linux/10/libstdc .a(del_op.o) /home/boost/lib/linux.2_6.x86_64/libboost_filesystem.a(исключение.o) (оператор удалить(пустота*)) /opt/rh/devtoolset-10/root/usr/lib/gcc/x86_64-redhat-linux/10/libstdc .a(del_ops.o) obj/Действие.o (оператор удалить(void*, длинный без знака)) /opt/rh/devtoolset-10/root/usr/lib/gcc/x86_64-redhat-linux/10/libstdc .a(del_opv.o) obj/CZip.o (оператор удалить) /opt/rh/devtoolset-10/root/usr/lib/gcc/x86_64-redhat-linux/10/libstdc .a(dyncast.o) obj/Действие.o (__динамический_приведение) /opt/rh/devtoolset-10/root/usr/lib/gcc/x86_64-redhat-linux/10/libstdc .a(eh_alloc.o) объект/Действие.o (__cxa_выделить_исключение)
Также, если я использую флаг-g, я получаю эту и аналогичную ошибку отладки DWARF
Ошибка КАРЛИКА: не удалось найти спецификацию переменной со смещением 23b28
Код отлично работает в ubuntu с gcc 9.3.1, но в rhel-7 с devtoolset он выдает ошибку сегментации(сброшено ядро).
Есть ли какая-то ошибка в моей ссылке?