Назад к вопросамЧто произойдёт, если собрать эти файлы командой
JuniorТеорияЧасто
Что произойдёт, если собрать эти файлы командой clang++ main.cpp?
// triple.h
int triple(int x);
// triple.cpp
#include "triple.h"
int triple(int x) { return x * 3; }
// main.cpp
#include "triple.h"
int main() { return triple(14); }Ошибка компоновки: в этой сборке нет определения triple
- Ждать, что
#include "triple.h"подтянет иtriple.cpp: он вставляет только текст заголовка, аtriple.cppкомпилируется, лишь если его назвать в команде сборки. - Ждать ошибку компилятора: объявления из
triple.hхватает, чтобы скомпилировать вызов, а телоtripleищет только компоновщик.
- Какой командой собрать эти файлы в одну работающую программу?
- Как система сборки CMake помогает не забыть исходный файл в сборке?