Допустим, у меня есть foo.cpp
со следующим содержимым
int foo() {
return 123;
}
и main.cpp
, в котором я использую foo
:
int main() {
int r = foo();
return r;
}
Я могу скомпилировать оба исходных файла вобъектный код, а затем связать их, используя оптимизацию времени соединения, чтобы сделать foo()
вызов встроенным в main()
.
Но можно ли добиться того же эффекта, перечислив оба файла в командной строке компилятора, например c++ foo.cpp main.cpp
?Или это просто сводится к
foreach(file in files)
UsualCompilingRoutinesForSingleFile(file)
?
Если да, почему компилятору не разрешено объединять все файлы, переданные в один, для достижения своего рода LTO?