Я хочу использовать исходный файл скажем foo.cpp с другими проектами c ++.Один из способов сделать это - иметь заголовочный файл и предоставить исходный файл в качестве аргументов командной строки для g ++.Но я хочу скомпилировать его, сохранить его где-нибудь и использовать, просто включив заголовочный файл, как мы это делаем с iostream, где мы не включаем iostream в качестве аргумента сборки для g ++
Полагаю, даже если мы собираем его как пользовательскийбиблиотека, все же нам нужно предоставить .object или equvilent файл в качестве аргумента для g ++ правильно?Принимая во внимание, что для iostream его реализация компилируется и связывается с нашим файлом cpp, хотя мы не упоминаем об этом явно, как g ++ foo.cpp iostream.
Например, рассмотрим это:
foo.h
#ifndef FOO_H
#define FOO_H
void disp();
#end
foo.cpp
#include<weiostream>
void disp()
{
std::cout<<"Hello World";
}
main.cpp
#include<iostream>
#include "foo.h" \* I just wnat this to be like iostream and not
providing it as command-line argument *\
int main()
{
disp();
return 0;
}
Это может быть бессмысленносделать это для этой маленькой программы, но я любопытен относительно более широкой концепции!И мне любопытно, если заголовочный файл iostream просто содержит определения или какой-то механизм для вызова своей библиотеки реализации g ++?