0
-fsanitize = address 옵션을 사용하여 clang을 사용하여 가장 간단한 실행 파일을 컴파일하려고합니다. clang을 직접 사용하면 매우 간단합니다. 그러나 제 요점은 CMake를 통해 그것을하는 것입니다.CMake가있는 LLVM 주소 소독제
내가 어떻게하는지 알아 보겠습니다. CMakeLists.txt 파일 :
cmake_minimum_required(VERSION 3.5.1 FATAL_ERROR)
project(TestSanitizer VERSION 0.1.0 LANGUAGES CXX)
add_executable(Test main.cpp)
target_compile_options(Test PUBLIC
-std=c++17
-Werror
-Weverything
-Wno-c++98-compat
-Wno-c++98-c++11-c++14-compat
-Wno-c++98-compat-pedantic
-fsanitize=address)
MAIN.CPP
을 :int main(int, const char**) { return 0; }
구성 및 bash는 스크립트 (config_gen_build.sh)를 사용합니다 마지막으로
if [ -d "bin" ]; then
rm -rf bin
fi
mkdir bin
cd bin
#config and gen
export CC=/usr/bin/clang-5.0
export CXX=/usr/bin/clang++-5.0
cmake ./../
#build
make
무엇이 잘못 되었나요? 오히려? 일부 라이브러리와 연결해야합니까?
컴파일러 및 링커 옵션으로 -fsanitize = address가 필요합니다. –
그 대답은 감사합니다. 답변을 추가 할 수 있습니다. 승인 할 것입니다. –