首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gcc (windows 8.1)如何使用ubsan

gcc (windows 8.1)如何使用ubsan
EN

Stack Overflow用户
提问于 2017-05-16 08:04:09
回答 1查看 1.5K关注 0票数 6

为了更好地防范UB案件,如:

代码语言:javascript
复制
#include <stdio.h>
int f(){
  int x;
  return x;
}
int main()
{
   f();
   while(1);
   return 0;
}

我今天有已更新我的GCC所以我可以用布桑。根据gcc --version的说法,我现在的版本是5.3.0。我以为这个更新会添加ubsan,但似乎并不是因为在用C:\Users\my_name\Desktop>gcc -fsanitize=undefined a.c编译之后,我得到的是:

c:/mingw/bin/../lib/gcc/mingw32/5.3.0/../../../../mingw32/bin/ld.exe:不能fin d -lubsan

现在,我已经看过这个职位了,但是操作系统是Ubuntu 15.04,我使用Win 8.1,所以这对我没有帮助。这里的一条评论说:

您需要安装libubsan软件包。

但是我不知道它是否是针对windows/ubuntu的,即使它是针对windows用户的,我也不知道该如何做。

编辑:我也尝试过编译gcc -fno-sanitize=all a.c (这里中有很多选项),这个编译没有警告,所以我想GCC不知怎么识别了消毒液(因为它编译好了),但是出于某种原因拒绝了我最初的编译尝试。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-28 09:29:24

对于GCC来说,x86_64杀菌剂运行库(包括-lubsan)只支持Linux、OSX、FreeBSD和Solaris (详见https://github.com/gcc-mirror/gcc/blob/master/libsanitizer/configure.tg )。因此,不幸的是,您还不能在Windows上使用UBsan。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43995718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档