Відповіді:
У проекті, де ви хочете # включити файл заголовка з іншого проекту, вам потрібно буде додати шлях файлу заголовка до розділу Додаткові включення каталогів у конфігурації проекту.
Для доступу до конфігурації проекту:
Щоб включити файл заголовка , просто введіть у свій код таке:
#include "filename.h"
Зауважте, що вам тут не потрібно вказувати шлях, оскільки ви вже включаєте каталог у Додаткові каталоги включення, тому Visual Studio буде знати, де його шукати.
Якщо ви не хочете додавати кожне розташування файлу заголовка в налаштуваннях проекту, ви можете просто включити каталог до точки, а потім #include щодо цієї точки:
// In project settings
Additional Include Directories ..\..\libroot
// In code
#include "lib1/lib1.h" // path is relative to libroot
#include "lib2/lib2.h" // path is relative to libroot
Якщо ви використовуєте статичні бібліотеки (тобто .lib-файл), вам також потрібно буде додати бібліотеку до входу лінкера, щоб під час з'єднання символи могли бути пов’язані (інакше ви отримаєте невирішений символ):
#include "proj2\include.h"
. Маючи декілька проектів на рішення, схоже, дуже спрямоване на мови NET, оскільки вони використовуються дуже по-різному. Але все ж знайти чудовий спосіб подолати це для проектів C ++.
#include
не має нічого спільного з проектами - він просто повідомляє препроцесору "помістити вміст файлу заголовка сюди". Якщо ви дасте йому шлях, який вказує на правильне розташування (може бути відносним шляхом, наприклад ../your_file.h), він буде включений правильно.
Однак вам доведеться дізнатися про бібліотеки (статичні / динамічні бібліотеки) для того, щоб такі проекти правильно пов'язувались - але це вже інше питання.
Оскільки обидва проекти знаходяться в одному і тому ж рішенні, існує більш простий спосіб включити файли та посилання, як описано в https://docs.microsoft.com/en-us/cpp/build/adding-references-in-visual-cpp- проекти? view = vs 2019 :
#include "../libProject/libHeader.h"
).Потрібно встановити шлях до заголовків у властивостях проекту, щоб компілятор шукав там, коли намагався знайти файли заголовків. Я не можу згадати точне місце, але дивіться, хоча властивості Проекту, і ви повинні його бачити.
Постарайтеся уникати повних посилань на шлях у директиві #include, будь то абсолютні чи відносні. Натомість додайте розташування папки включення іншого проекту у налаштування вашого проекту. Використовуйте лише підпапки в посиланнях на шляхи, коли це необхідно. Таким чином, простіше переміщувати речі, не потребуючи оновлення коду.
Розширюючись на відповідь @ Бенава, моїм кращим підходом є:
$(SolutionDir)
до додаткових каталогів включенняТепер ви можете включити заголовки від своїх посилань на такі проекти:
#include "OtherProject/Header.h"
Примітки:
#include
s, але він встановлює правильні залежності побудови, яких ви, мабуть, хочете.