相关疑难解决方法(0)

什么是未定义的引用/未解析的外部符号错误,我该如何解决?

什么是未定义的参考/未解决的外部符号错误?什么是常见原因以及如何修复/预防它们?

随意编辑/添加您自己的.

c++ c++-faq linker-errors unresolved-external undefined-reference

1418
推荐指数
32
解决办法
52万
查看次数

使用 GCC 编译选项“-Werror”时如何忽略错误?

我有以下测试代码,文件test.c

#include <stdio.h>

int *func()
{
    int i = 123;
    return &i;
}

int main()
{
    printf("%d\n", *func());
}
Run Code Online (Sandbox Code Playgroud)

如果我使用命令来编译它就可以了,

#include <stdio.h>

int *func()
{
    int i = 123;
    return &i;
}

int main()
{
    printf("%d\n", *func());
}
Run Code Online (Sandbox Code Playgroud)

它将有以下警告信息:

gcc test.c -o test
Run Code Online (Sandbox Code Playgroud)

但可以输出结果:123

如果我使用命令:

warning: address of stack memory associated with local variable 'i'
  returned [-Wreturn-stack-address]
return &i;
        ^
1 warning generated.
Run Code Online (Sandbox Code Playgroud)

将会有如下错误信息:

gcc -Werror test.c -o test
Run Code Online (Sandbox Code Playgroud)

现在我想使用-Werror选项,但我也想忽略与局部变量“i”警告关联的堆栈内存的地址。我应该怎么办?

c clang

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