小编Osc*_*son的帖子

gcc 无法在没有 -O2 的情况下内联函数

我最近遇到了在升级 debian 测试后编译一段代码的问题,得到了 gcc 6.2.1 编译器。我把它归结为这个简单的例子:

inline int func(void) {
    return 0;
}

int main (int argc, char **argv) {
    func();
}
Run Code Online (Sandbox Code Playgroud)

该代码不会与下面的编译:

gcc -o exec code.c # gcc 6.2.1

它失败了:

undefined reference to 'func'

我也在同一台主机上尝试过 gcc 4.8、4.9 和 5,但都失败了。如果我添加,它会编译:

gcc -o exec code.c -O2 # gcc 6.2.1

我真的很好奇为什么它与 -O2 标志一起工作,但不是没有,我希望这能工作?

c optimization gcc inline gcc6

3
推荐指数
1
解决办法
3360
查看次数

标签 统计

c ×1

gcc ×1

gcc6 ×1

inline ×1

optimization ×1