c++ - 操作系统和编译器如何通信以启动程序编译
问题描述
当我给出编译.cpp
代码的命令时
g++ abc.cpp
我是否调用系统调用来首先启动gcc
编译器并将文件提供给它(abc.cpp)
进行编译。
否则如何调用编译器的 void _start() 函数,该函数用于调用main()
函数。
是否像 os 的 system() 被调用,它会调用void _start()
解决方案
g++
只是somewhere/bin/g++
一个可执行文件的别名。该可执行文件作为参数传递abc.cpp
,然后关闭并执行编译器编译文件的操作。它可能使用其他可执行文件在后台编译和链接文件。
操作系统唯一要做的就是加载g++
到内存中并main
通过crt调用它。
推荐阅读
- xcode - react-native 0.60.4 xcode 构建失败
- html - 100% 高度不适用于移动视图上的身体背景图像
- python - np.abs() 和 pd.TimedeltaIndex 为列表中的 pd.TimedeltaIndex(['0 days']) 抛出错误
- swift - 如何使用 IBInspectable 在属性检查器中设置夜间模式和日间模式颜色?
- algorithm - 加权无向树获得的最大利润
- salesforce - 如何在 Lightning Web 组件中使用 onkeypress?
- python - 如果 form.validate_on_submit(): 不起作用
- javascript - 为什么我的 vue.config.js 中的chainWebpack 只在我更改后第一次工作?
- node.js - 使用 express 和 ejs 启动 Web 服务器
- r - 匹配R中两个栅格的范围?