windows上的VC2019地址消毒器64位链接错误“;未解析外部符号“U asan”U shadow“U memory”U dynamic“U address”;
下面是一个简单的程序windows上的VC2019地址消毒器64位链接错误“;未解析外部符号“U asan”U shadow“U memory”U dynamic“U address”;,c,visual-studio,qt,address-sanitizer,cl,C,Visual Studio,Qt,Address Sanitizer,Cl,下面是一个简单的程序 #include <malloc.h> int main(int argc, char **argv) { char* arr=malloc(10); arr[10]='\0'; return 0; } 查看带有dumpbin的clang\u rt.asan\u dynamic-x86\u 64.lib中缺少的符号。 请注意,在这两种体系结构上,示例的静态链接(不带_dynamiclibs)都可以工作,但我需要动态链接,因为依赖关系更大
#include <malloc.h>
int main(int argc, char **argv)
{
char* arr=malloc(10);
arr[10]='\0';
return 0;
}
查看带有dumpbin
的clang\u rt.asan\u dynamic-x86\u 64.lib
中缺少的符号。
请注意,在这两种体系结构上,示例的静态链接(不带_dynamiclibs)都可以工作,但我需要动态链接,因为依赖关系更大(Qt-dll)。
有人已经发现了吗
尊敬的Leo,我需要另外一个64位的链接库,另外还有一个clang\u rt.asan\u dynamic\u runtime\u thunk-x86\u 64.lib
cl-MD-fsanize=address clang\u rt.asan\u dynamic-x86\u 64.lib clang\u rt.asan\u dynamic\u runtime\u thunk-x86\u 64.lib xx.c
正确链接程序,并在启动程序后显示消毒器错误
该页面有一个很好的表,其中列出了所有不同的构建模型以及需要的asan LIB
> cl -Zi -fsanitize=address -MD clang_rt.asan_dynamic-x86_64.lib xx.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.28.29336 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
xx.c
Microsoft (R) Incremental Linker Version 14.28.29336.0
Copyright (C) Microsoft Corporation. All rights reserved.
/out:xx.exe
/debug
clang_rt.asan_dynamic-x86_64.lib
xx.obj
xx.obj : error LNK2019: unresolved external symbol __asan_shadow_memory_dynamic_address referenced in function main
xx.exe : fatal error LNK1120: 1 unresolved externals