c - 优化设置

标签 c compiler-flags

在 c 中,我们可以通过启用标志 -O 来启用优化设置,以启用所有可能的优化,而 -O0 将禁用所有启用的优化。

我的问题是这个标志是给谁的消息?意味着给编译器还是内核?

最佳答案

您提供的所有命令行参数均由编译器(或编译器驱动程序,在某些编译器(例如 gcc)的情况下)解释。然后它们可能会被传递给编译器(或编译器驱动程序)执行的其他程序以完成特定任务。

顺便说一句,-o 并不是很多编译器的优化设置。它通常指定输出文件的名称。例如,gcc -c file.c -o anotherfile.o 编译 file.c 并生成名为 anotherfile.o 的目标文件。

优化设置通常为-O(例如-O3)。注意大写的O。它不一定会传递给编译器/驱动程序执行的每个程序。例如,gcc -O3 file.c -o program 使用优化设置 -O3 编译 file.c 并生成名为 的输出可执行文件>程序。为此,需要调用链接器以及各种编译阶段(预处理器、编译器本身等)。 -O3 通常不会传递给链接器 - 它是链接器通常不理解的编译选项。

关于c - 优化设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35679772/

相关文章:

c - 段错误,大数组

c - cgreen 中的多个 Describe()

c++ - 在 xcode 4 中, "other c flags"和 "other c++ flags"有什么区别?

c++ - 如何使用依赖于符号调试的参数定义函数?

c - 我如何知道哪些标志可用于 GCC 以更轻松地链接库?

c - 打印 vmlinux 二进制文件中的所有符号信息

c - 大小 1 的读取无效

c - 我需要帮助来理解以下用 C 编写的内核模块

cmake - 使用 CMake 时处理编译器标志的正确方法

使用 fork() 函数在 Linux 中创建进程