2014-11-06 1 views
0

При попытке компиляции C++ исходный файл с лязгом 3.5 с неопределенным поведением проверкиClang неопределенное поведение ошибка проверки ссылка

clang++-3.5 -std=c++11 -fsanitize=undefined main.cpp 

я получаю следующее сообщение об ошибке на ссылки:

Undefined symbols for architecture x86_64: 
    "typeinfo for __cxxabiv1::__class_type_info", referenced from: 
     __ubsan::checkDynamicType(void*, void*, unsigned long) in libclang_rt.ubsan_osx.a(ubsan_type_hash.o) 
     isDerivedFromAtOffset(__cxxabiv1::__class_type_info const*, __cxxabiv1::__class_type_info const*, long) in libclang_rt.ubsan_osx.a(ubsan_type_hash.o) 
     findBaseAtOffset(__cxxabiv1::__class_type_info const*, long) in libclang_rt.ubsan_osx.a(ubsan_type_hash.o) 
    "typeinfo for __cxxabiv1::__si_class_type_info", referenced from: 
     isDerivedFromAtOffset(__cxxabiv1::__class_type_info const*, __cxxabiv1::__class_type_info const*, long) in libclang_rt.ubsan_osx.a(ubsan_type_hash.o) 
     findBaseAtOffset(__cxxabiv1::__class_type_info const*, long) in libclang_rt.ubsan_osx.a(ubsan_type_hash.o) 
    "typeinfo for __cxxabiv1::__vmi_class_type_info", referenced from: 
     isDerivedFromAtOffset(__cxxabiv1::__class_type_info const*, __cxxabiv1::__class_type_info const*, long) in libclang_rt.ubsan_osx.a(ubsan_type_hash.o) 
     findBaseAtOffset(__cxxabiv1::__class_type_info const*, long) in libclang_rt.ubsan_osx.a(ubsan_type_hash.o) 
ld: symbol(s) not found for architecture x86_64 

Do I нужно связать с дополнительной библиотекой?

ответ

2

Кажется, что вам не хватает libc++abi. Попробуйте добавить

-lc++abi 

в вашу команду связи.

Смежные вопросы