çalışır CMake içinde AddressSanitizer etkinleştirmek için uygun yolu nedir:Ben aşağıdaki gibi AddressSanitizer bayrağını ekledik Xcode
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address")
Her şey oluşturur ve Unix Makefiles
kullanırken iyi çalışır.
Xcode projesini oluştururken sorun geliyor, sadece ASan kitaplığını bulamadığı için bağlantı vermek istemiyor.
Zaten iki çözüm bulundu, ancak onlar sadece CMake kullanılarak otomatik olamaz çünkü bunları kullanmamaya karar:- bağlantılı bayrak
-Wl,-undefined,dynamic_lookup
ekleme, bu nedenle dinamik kütüphaneleri bağlantı atlıyor. - Doğrudan
libclang_rt.asan_osx_dynamic.dylib
ile bağlantı.
Peki bu iki çözümle ilgili sorun nedir? Çözelti 1. kullanırken
- , manuel Xcode hedef şemasını açın ve
libclang_rt.asan_osx_dynamic.dylib
içinDYLD_INSERT_LIBRARIES
ortam değişkeni işaret eklemek zorunda. - Çözüm 2'yi kullanırken, ASan kitaplığının yolu bilgisayarlar arasında değişir.
Ayrıca, başka bir çözüm olarak, Xcode hedef şemasından Address Sanitizer bayrağını etkinleştirmeyi denedim, ancak ilginç bir şekilde eklediğim sorunları algılamadı, bu yüzden bir çözüm olarak bunu listelemedim çünkü sınamamda başarısız oldu.
Herhangi bir yardım çok takdir edilecektir.
belki bu check out: istediğini açar bir Xcode proje ayarının biliyorsanız https://github.com/arsenm/sanitizers-cmake – xaxxon
yapabilirsiniz CMAKE_XCODE_ATTRIBUTE _... 'değişkenlerini ya da XCODE_ATTRIBUTE _...' hedefine göre özelliklerini kullanarak CMake'den ayarlayın. –