作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道在执行过程中的C++代码中如何创建iostream文件。我们在C++程序中编写#include,我知道#include是预处理程序指令
加载文件,是一个文件名,但我不知道该文件的位置。
我在想一些问题...
最佳答案
您似乎对C++的编译和执行模型感到困惑。通常不解释C++(尽管可以解释),但是在编译阶段会生成一个本机二进制文件,然后执行该二进制文件。因此,我们绕道而行。
为了从少数文本文件转到正在执行的程序,有几个步骤:
.cpp
或
.cxx
,尽管编译器可能不太在意)都经过处理以生成目标文件(在Linux上通常为
.o
):
#include
(将文件包含/复制/粘贴到当前文件中),浏览#if
和#else
以删除不需要的源并扩展宏。 static
或全局变量等生成本地代码。格式取决于一般LD_LIBRARY_PATH
)中搜索该库,并实际加载它们。 printf
函数的地址”,加载程序将用实际地址替换该占位符。 static
对象(在文件范围内,而不是函数静态的),然后继续调用
main
函数。
#include <iostream>
是预处理程序指令。因此,它在编译阶段的早期就已完全解决,并且仅取决于找到合适的头文件(实际上还不需要库代码)。注意:将允许编译器不存在头文件,而只是神奇地注入(inject)必要的代码,就好像头文件存在一样,因为这是标准库头(因此很特殊)。对于常规 header (您的),将调用预处理器。
libc++.so
),并且生成的代码缺少printf
的实现(例如)#include
指令中指定路径。例如,使用
boost
:
#include <boost/optional.hpp>
#include <boost/algorithm/string/trim.hpp>
#include <../myotherproject/x.hpp>
/
和您指定的路径。如果这创建了一个现有文件的路径,它将选择它,否则它将继续到下一个目录...直到用完(并抱怨)。
关于c++ - 在执行过程中如何用C++代码在计算机中找到Iostream文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24009466/
我是一名优秀的程序员,十分优秀!