有几篇文章引用了这个(或类似的)未定义的引用,但是这些都没有帮助。
我有可以在gentoo 4.14.83上很好地编译的代码,同时具有gcc-7.3.0和gcc-8.2.0。
在CentOS 7(CentOS Linux版本7.6.1810(核心))上,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 ++引起的,但此处并非如此。
什么原因导致此错误,如何解决?