Ошибка сегментации с использованием devtoolset-10 со статическими библиотеками boost 1.73 в соответствии с gcc 7.5.0

#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) -c


lt; -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 он выдает ошибку сегментации(сброшено ядро).

Есть ли какая-то ошибка в моей ссылке?