Ошибка компилятора режима Simulink Rapid Accelerator Linux CentOS 7.3 undefined ссылка на `std :: __ cxx11 :: basic_string <char, std :: char_traits <char>

В настоящее время я пытаюсь запустить свою модель Simulink, созданную с помощью Matlab 2019b, на сервере моего университета, который работает под управлением Linux CentOS 7.3.1611. Если я запустил модель в "нормальном" или "ускорительном" режиме, это будет успешно. Однако, если я попытаюсь запустить модель в "режиме быстрого ускорителя", компилятор вернет ошибку во время сборки. Все ошибки содержат элемент не нахождения стандартной библиотеки:

undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>

Я искал решения в ответах MATLAB и stackru, но пока ни один из них у меня не работал. Я также обратился за помощью в ИТ-службу своего университета, но они не смогли мне помочь.

Одно из решений намекало на то, что компилятор не может найти правильные библиотеки и что путь к библиотеке должен быть добавлен / обновлен здесь при переполнении стека. Однако, если я напечатаю путь к библиотеке в Matlab, тогда все будет в порядке: Путь к библиотеке:

<matlab_root>/cefclient/sys/os/glnxa64:<matlab_root>/sys/opengl/lib/glnxa64:<matlab_root>/sys/os/glnxa64:<matlab_root>/bin/glnxa64:<matlab_root>/extern/lib/glnxa64:<matlab_root>/runtime/glnxa64:<matlab_root>/sys/java/jre/glnxa64/jre/lib/amd64/native_threads:
<matlab_root>/sys/java/jre/glnxa64/jre/lib/amd64/server:<compiler_root>/root/usr/lib64:<compiler_root>/root/usr/lib:<compiler_root>/root/usr/lib64/dyninst

Другой проблемой может быть компилятор. Сначала я использовал компилятор gcc 8.x, но позже выяснил, что требуется версия 6.3, поэтому сейчас я использую именно ее.

Наконец, я обнаружил, что проблема может заключаться в том, что "(...) это, вероятно, означает, что вы пытаетесь связать вместе объектные файлы, которые были скомпилированы с разными значениями для макроса _GLIBCXX_USE_CXX11_ABI". ( из-за переполнения стека) Последний вариант мне кажется наиболее вероятным, однако я не смог решить эту проблему. Я пробовал, например:

set_param(model,'AccelMakeCommand','make_rtw CPP_OPTS="-D_GLIBCXX_USE_CXX11_ABI=0"')

а также

set_param(model,'MakeCommand','make_rtw CPP_OPTS="-D_GLIBCXX_USE_CXX11_ABI=0"')

Однако это не помогло.

Если у кого-то есть совет, который мог бы мне помочь, это было бы здорово. Я добавил часть вывода консоли и сообщение об ошибке, если что-то пошло не так, внизу для дополнительной информации.

С уважением, Натан

Сообщения вывода консоли:

 ( A lot of other stuff)
    ### Processing Template Makefile: <matlab_root>/rtw/c/raccel/raccel_unix.tmf
    ### <model_folder>/slprj/raccel/MyModel/MyModel.mk which is generated from <matlab_root>/rtw/c/raccel/raccel_unix.tmf is up to date
    ### Building MyModel: <matlab_root>/bin/glnxa64/gmake -f MyModel.mk  RSIM_SOLVER_SELECTION=2 PCMATLABROOT="<matlab_root>" EXTMODE_STATIC_ALLOC=0 EXTMODE_STATIC_ALLOC_SIZE=1000000 EXTMODE_TRANSPORT=0 TMW_EXTMODE_TESTING=0 COMBINE_OUTPUT_UPDATE_FCNS=0 INCLUDE_MDL_TERMINATE_FCN=1 MULTI_INSTANCE_CODE=0 MODELREF_TARGET_TYPE=NONE ISPROTECTINGMODEL=NOTPROTECTING OPTS="-DTGT
     an error.

Сообщение об ошибке:

 ( A lot of stuff)
    g++  -Wl,-rpath,<matlab_root>/sys/os/glnxa64
    -L<matlab_root>/sys/os/glnxa64 -o MyModel
    MyModel_c233cdf9_1.o MyModel_c233cdf9_1_create.o
    MyModel_c233cdf9_1_setParameters.o
    MyModel_c233cdf9_1_asserts.o
    MyModel_c233cdf9_1_deriv.o
    MyModel_c233cdf9_1_checkDynamics.o
    MyModel_c233cdf9_1_output.o
    MyModel_c233cdf9_1_assembly.o
    MyModel_c233cdf9_1_computeConstraintError.o
    MyModel_c233cdf9_1_mode_zero_crossings.o
    MyModel_c233cdf9_1_geometries.o
    MyModel_c233cdf9_1_gateway.o pm_printf.o rt_logging.o
    rt_backsubrr_dbl.o rt_forwardsubrr_dbl.o rt_lu_real.o rt_matrixlib_dbl.o
    MyModel.o MyModel_capi.o
    MyModel_data.o MyModel_tgtconn.o rtGetInf.o
    rtGetNaN.o rt_nonfinite.o rt_logging_mmi.o rtw_modelmap_utils.o
    raccel_main_new.o raccel_sup.o raccel_mat.o simulink_solver_api.o
    raccel_utils.o common_utils.o ext_svr.o updown.o ext_work.o
    rtiostream_interface.o rtiostream_tcpip.o rtiostream_utils.o   \
             <matlab_root>/toolbox/physmod/sm/ssci/lib/glnxa64/sm_ssci_std.a
                 <matlab_root>/toolbox/physmod/sm/core/lib/glnxa64/sm_std.a
                 <matlab_root>/toolbox/physmod/pm_math/lib/glnxa64/pm_math_std.a
                 <matlab_root>/toolbox/physmod/simscape/engine/sli/lib/glnxa64/ssc_sli_std.a
                 <matlab_root>/toolbox/physmod/simscape/engine/core/lib/glnxa64/ssc_core_std.a
                 <matlab_root>/toolbox/physmod/network_engine/lib/glnxa64/ne_std.a
                 <matlab_root>/toolbox/physmod/common/math/core/lib/glnxa64/mc_std.a
                 <matlab_root>/toolbox/physmod/common/external/library/lib/glnxa64/ex_std.a
                 <matlab_root>/toolbox/physmod/common/foundation/core/lib/glnxa64/pm_std.a
                 <matlab_root>/bin/glnxa64/libmwcoder_target_services.so
                 <matlab_root>/bin/glnxa64/libmwcoder_ParamTuningTgtAppSvc.so
                 -L"<matlab_root>/bin/glnxa64" -lmwipp -lut -lmx -lmex
                 -lmat -lmwmathutil -lmwslexec_simbridge -lmwsl_fileio
                 -lmwsigstream -lmwsl_AsyncioQueue -lmwsl_services
                 -lmwsdi_raccel -lmwi18n -lmwsl_simtarget_instrumentation
                 -lfixedpoint -lmwslexec_simlog -lm -lpthread -ldl
    <matlab_root>/bin/glnxa64/libQt5WebKit.so.5: undefined reference to
    `std::__cxx11::basic_string<char, std::char_traits<char>,
    std::allocator<char> >::_S_copy(char*, char const*, unsigned
    long)@GLIBCXX_3.4.21'
    <matlab_root>/bin/glnxa64/libmwboost_locale.so.1.65.1: undefined
    reference to `std::__cxx11::numpunct<char>::id@GLIBCXX_3.4.21'
    <matlab_root>/bin/glnxa64/libmwboost_serialization.so.1.65.1:
    undefined reference to `typeinfo for
    std::__codecvt_utf8_base<wchar_t>@GLIBCXX_3.4.21'
    <matlab_root>/bin/glnxa64/libut.so: undefined reference to
    `std::__cxx11::basic_string<char, std::char_traits<char>,
    std::allocator<char> >::assign(char const*)@GLIBCXX_3.4.21'
    <matlab_root>/bin/glnxa64/libut.so: undefined reference to
    `std::logic_error::logic_error(char const*)@GLIBCXX_3.4.21'
    <matlab_root>/bin/glnxa64/libmwcoder_target_services.so: undefined
    reference to `typeinfo for std::_V2::error_category@GLIBCXX_3.4.21'
    <matlab_root>/bin/glnxa64/libmwboost_locale.so.1.65.1: undefined
    reference to `typeinfo for std::__cxx11::moneypunct_byname<char,
    false>@GLIBCXX_3.4.21'
   
     ( A lot of stuff)

         collect2: error: ld returned 1 exit status
    gmake: *** [MyModel] Error 1

    Error(s) encountered while building "MyModel" - Show complete
    stack trace
}

0 ответов

Другие вопросы по тегам