相关疑难解决方法(0)

解决MSVC上的清理程序功能

来自Linux/gcc/clang我发现自己在Windows/Visual Studio上的工作越来越多.

我真正缺少的是地址清理器(边界检查,泄漏,免费后使用,......).我做了一些研究,并尝试了一些事情,但没有找到完整(功能明智)和可靠的替代品.我以Dr.Memory为例,但了解到它对基于Qt的程序不起作用(至少在Windows 10上不行).

那么如何在Windows/MSVC上获得类似地址清理程序的功能呢?

c++ qt visual-studio address-sanitizer

10
推荐指数
2
解决办法
6431
查看次数

警告:在def文件末尾损坏.drectve

我用gcc/mingw在eclipse cdt(c ++)中安装了glew,glfw和glm,这些都是静态的.一切正常,但我不喜欢eclipse输出控制台中的警告:

警告:在def文件末尾损坏.drectve

我如何修复和隐藏此警告?这是什么意思 ?

我注意到的是,只有当我调用'glewInit'函数时才会出现此警告.

opengl glew eclipse-cdt glfw

8
推荐指数
2
解决办法
7710
查看次数

什么是 MSYS2 环境?我该如何选择一个?

据说MSYS2有不同的环境

这些是什么?我该如何选择使用哪一个?


(本问答旨在作为该主题的规范副本。)

mingw msys mingw-w64 msys2

7
推荐指数
1
解决办法
3021
查看次数

使用-fsanitize = undefined(mingw-w64)时找不到-lubsan

我正在使用mingw-w64(gcc 7.3.0),并且在使用以下命令编译任何C ++程序时:

g++ file.cpp -fsanitize=undefined
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

... mingw32 / bin / ld.exe:找不到-lubsan

但是,如果删除该-fsanitize=undefined标志,则能够成功编译并运行程序。经过一些研究,我发现这意味着缺少库ubsan(未定义行为消毒剂),但是我找不到关于库的任何信息。我该如何解决?

c++ gcc compiler-errors compilation g++

5
推荐指数
1
解决办法
230
查看次数

gcc 未检测到内联函数的数组越界

extern void myprint(unsigned char *);

static inline void
myfunc(unsigned char *buf)
{
    for (unsigned int i = 0; i < 20; i++) {
        buf[i] = i;
    }
}

int
main(void)
{
    unsigned char buf[10];
    myfunc(buf);
    myprint(buf);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)
$ gcc.exe -O2 -pedantic -Wextra -Wall -Wstringop-overflow -Wuninitialized -Wunused -Warray-bounds=2 -Wformat-overflow -Wstringop-overread -g  -c C:\temp\cb\main.c -o build\mingw\obj\main.o
$ gcc.exe  -o build\mingw\test.exe build\mingw\obj\main.o build\mingw\obj\mod.o  -O2
Run Code Online (Sandbox Code Playgroud)
$ gcc --version
gcc (i686-posix-sjlj-rev1, Built by MinGW-W64 project) 11.2.0
Copyright (C) 2021 Free Software Foundation, Inc. …
Run Code Online (Sandbox Code Playgroud)

c gcc gcc-warning

0
推荐指数
1
解决办法
88
查看次数