Я скомпилировал один проект C ++, который трансплантирован из другого проекта, и есть некоторые неопределенные символьные предупреждения при компоновке после компиляции. Дело в том, что эти предупреждения такие странные. Они делятся на 2 типа:
Тип 1:
dld: warning: Undefined symbol **'__record_needed_destruction'** in file './xxx/xx.o'
dld: warning: Undefined symbol **'__memzero'** in file './xxx/xyy.o'
dld: warning: Undefined symbol **'__vec_delete'** in file './xxx/xyz.o'
dld: warning: Undefined symbol **'__vec_new'** in file './xxx/yy/xxx/yyy.o'
dld: warning: Undefined symbol **'__pure_virtual_called'** in file './xxx/zzz.o'
Ключевым моментом является то, что эти символы не использовались в исходном коде. Каковы точные средства против этого?
Тип 2:
dld: warning: Undefined symbol in file './xxx/x1.o', './xxx/x2.o', './xxx/x3.o':
nothrow__3std
**std::nothrow**
Исходный код ниже:
ApplicationSystem* pApplicationSystem = **new(std::nothrow)** ApplicationSystem{
.....
.....
}
Подобные операторы появляются в 3 файлах cpp. Что-то не так с использованием std :: nothrow?