gcc在无优化时inline的奇怪行为 - 可打印的版本 +- WeHack BBS (https://bbs.wehack.space) +-- 版块: 计算机技术 (https://bbs.wehack.space/forum-5.html) +--- 版块: 程序设计讨论区 (https://bbs.wehack.space/forum-14.html) +--- 主题: gcc在无优化时inline的奇怪行为 (/thread-191.html) |
gcc在无优化时inline的奇怪行为 - vimacs - 10-23-2020 test_inline.c: 代码: inline int addi(int a, int b) main.c: 代码: extern int add3(int a, int b, int c); GCC 10.2 不用-O选项编译之后,发现 test_inline.c 里面的 addi 变成了未解析符号,于是最后链接失败。用了 -O2 就正常了。 如果把 inline 改成 static inline,那就都正常了。 clang 10.0.1 也是这个现象。 因为这个现象,我把softfloat库放进gem5之后,我就构建出错了,这时候才发现gem5的ext/下的库在编译时都没开优化。 RE: gcc在无优化时inline的奇怪行为 - nadebula - 12-03-2020 main()函数的返回值是有意义的,return add3(1,2,3);这样做真的好么……不由得想起了老谭经典的void main(void);函数原型。 |