Справочная информация: я использую Project Euler в качестве предлога для тестирования различных функций C ++ и нахождения пробелов в моих знаниях.У меня есть проект, который создает исполняемый файл, который решает различные математические задачи.Это становится громоздким, и я разделяю проблемы на отдельные исполняемые файлы.Многие математические функции повторно используются в нескольких задачах.
Первый: Я хочу создать файл DLL с вспомогательными функциями математики.Вместо того, чтобы предоставлять один файл mathhelp.h
для всей библиотеки DLL, я бы предпочел иметь несколько отдельных файлов .h
, например primes.h
, cartesian.h
и т. Д., Каждый из которых обеспечивает доступ к отдельным пространствам имен в библиотеке DLL.
Возможно ли это?
Секунда: Отдельно я делаю хочу один mathhelp.h
файл для этих проектов, достаточно больших, им просто нужен доступ ко всемвспомогательная функция без включения пятидесяти отдельных заголовков.Как это сделать, ответили:
Как экспортировать несколько файлов заголовков в виде одного файла заголовков в C ++?
, но этот ответ дает мне дополнительный вопрос: Если в исполняемый проект я включаю следующий заголовок из проекта DLL:
#ifndef MATHHELP_H
#define MATHHELP_H
#include "primes.h"
#include "cartesian.h"
#endif
... как это скомпилируется, если у меня также нет primes.h
в исполняемом проекте?Разве прекомпилятор не дойдет до первого #include
и не захлебнется тем фактом, что у меня нет primes.h
в проекте?