Есть несколько постов, цитирующих эти (или подобные) неопределенные ссылки, но ни одна из них не помогла.
У меня есть код, который прекрасно компилируется на gentoo 4.14.83, как с gcc-7.3.0, так и с gcc-7.3.0.gcc-8.2.0.
В CentOS 7 (CentOS Linux выпуск 7.6.1810 (Core)), однако компоновщик g ++ - 7.3.1 говорит:
/home/jody/progs/multi_spc_QHG3/kernel/Geography.cpp:68: undefined reference to `__cxa_throw_bad_array_new_length'
/home/jody/progs/multi_spc_QHG3/kernel/Geography.cpp:69: undefined reference to `__cxa_throw_bad_array_new_length'
/home/jody/progs/multi_spc_QHG3/kernel/Geography.cpp:70: undefined reference to `__cxa_throw_bad_array_new_length'
/home/jody/progs/multi_spc_QHG3/kernel/Geography.cpp:71: undefined reference to `__cxa_throw_bad_array_new_length'
Ссылкастроки в Geography.cpp
имеют простые new
операторы:
m_adLatitude = new geonumber[m_iNumCells];
m_adLongitude = new geonumber[m_iNumCells];
m_adAltitude = new geonumber[m_iNumCells];
m_adDistances = new geonumber[m_iNumCells*m_iMaxNeighbors];
(тип geonumber
на самом деле double
, m_iNumCells
и m_iMaxNeighbors
имеет тип int
)
Поскольку мне нужна g ++ версии 7, я использую компилятор из devtoolset-7-gcc.x86_64.
В некоторых сообщениях, которые я нашел, указано, что эта ошибка вызвана отсутствием libstdc ++, но это не такВот.
Чем вызвана эта ошибка и как ее можно исправить?