неопределенная ссылка на `__cxa_throw_bad_array_new_length - PullRequest
0 голосов
/ 16 апреля 2019

Есть несколько постов, цитирующих эти (или подобные) неопределенные ссылки, но ни одна из них не помогла.

У меня есть код, который прекрасно компилируется на 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 ++, но это не такВот.

Чем вызвана эта ошибка и как ее можно исправить?

...