Использование собственного исходного файла cpp без предоставления его в качестве аргументов командной строки для g ++, как iostream - PullRequest
0 голосов
/ 02 июля 2019

Я хочу использовать исходный файл скажем 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 ++?

...