Я работаю над игрой с использованием Visual С++. У меня есть некоторые компоненты в отдельных проектах и заданы зависимости проекта. Как мне # включить заголовочный файл из другого проекта? Я понятия не имею, как использовать классы из одного проекта в другом.
Visual С++: # включить файлы из других проектов в одном решении
Ответ 1
Настройки для компилятора
В проекте, где вы хотите # включить заголовочный файл из другого проекта, вам нужно будет добавить путь к файлу заголовка в раздел Дополнительные каталоги Include в конфигурации проекта.
Чтобы получить доступ к конфигурации проекта:
- Щелкните правой кнопкой мыши проект и выберите "Свойства".
- Выберите Свойства конфигурации → C/С++ → Общие.
- Задайте путь в разделе Дополнительные каталоги Include.
Как включить
Чтобы включить заголовочный файл, просто напишите в коде код:
#include "filename.h"
Обратите внимание, что здесь нет необходимости указывать путь, потому что вы уже включили каталог в дополнительные каталоги Include, поэтому Visual Studio будет знать, где его искать.
Если вы не хотите добавлять каждое расположение файла заголовка в параметры проекта, вы можете просто добавить директорию до точки, а затем # включить по отношению к этой точке:
// 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 файл), вам также нужно будет добавить библиотеку к вводу компоновщика, чтобы во время привязки символы могли быть связаны (в противном случае вы получите неразрешенный символ):
- Щелкните правой кнопкой мыши проект и выберите "Свойства".
- Выберите Свойства конфигурации- > Linker- > Input
- Войдите в библиотеку под дополнительными зависимостями.
Ответ 2
#include
не имеет ничего общего с проектами - он просто сообщает препроцессору "поместить содержимое файла заголовка здесь". Если вы укажете путь, который указывает на правильное местоположение (может быть относительный путь, например.. /your _file.h), он будет включен правильно.
Однако вам нужно будет узнать о библиотеках (статических/динамических библиотеках), чтобы правильно связать такие проекты, но этот еще один вопрос.
Ответ 3
Вам нужно установить путь к заголовкам в свойствах проекта, чтобы компилятор выглядел там, пытаясь найти заголовочный файл (ы). Я не могу вспомнить точное местоположение, но смотрю, что свойства проекта, и вы должны увидеть его.
Ответ 4
Попробуйте избежать ссылок на полный путь в директиве #include, независимо от того, являются ли они абсолютными или относительными. Вместо этого добавьте расположение другой проектной папки в свои настройки проекта. При необходимости используйте только вложенные папки в ссылках на пути. Таким образом, легче перемещать вещи, не обновляя свой код.
Ответ 5
Поскольку оба проекта находятся под одним и тем же решением, для включаемых файлов и компоновщика существует более простой способ, как описано в https://docs.microsoft.com/en-us/cpp/build/adding-references-in-visual-cpp-. проекты? view = vs-2019:
-
#include "../libProject/libHeader.h"
может быть записано в относительном пути (например,#include "../libProject/libHeader.h"
). - Для компоновщика щелкните правой кнопкой мыши "Ссылки", нажмите "Добавить ссылку" и выберите другой проект.