是否可以为同一个应用程序编译具有不同gcc优化级别的文件?

kp1*_*p11 5 c gcc compiler-optimization

我有一个应用程序,它通常使用gcc优化标志-O0(无优化).现在我有一个文件opt.c,我想用-O1编译,并留下其余的文件-O0.

更具体地说,opt.c有一个大的for循环,它执行一些简单的算术运算.

最后只创建了一个可执行文件,其中包含所有文件和opt.c. 我不确定这是否会导致任何问题!

cle*_*anc 6

是的,这绝对没问题.我很好奇你为什么不对你的所有代码进行优化?我们通常优化所有内容,除了一些优化导致问题的文件.

  • @ kp11优化仅在代码中存在错误时才会出现问题,或者编译器或工具链中存在错误的可能性更小.强烈建议您最大限度地优化所有代码并解决任何由此产生的问题.那就是说,我赞成这个答案. (4认同)
  • @HadiBrais:在某些情况下,优化还会对为C语言编写的代码造成严重破坏,这些代码提供了超出标准规定的有用行为和保证; 在某些情况下,禁用钝性编译器的"优化"的运行时成本可能低于代码的成本,否则需要防止它的成本. (2认同)