визуальный С++:#включаем файлы из других проектов в одно решение

StackOverflow https://stackoverflow.com/questions/601268

Вопрос

Я работаю над игрой, используя Visual C++.У меня есть некоторые компоненты в отдельных проектах, и я установил зависимости проекта.Как #include файл заголовка из другого проекта?Я понятия не имею, как использовать классы из одного проекта в другом.

Это было полезно?

Решение

Настройки компилятора

В проекте, в который вы хотите #include заголовочный файл из другой проект, вам нужно будет добавить путь к заголовочному файлу в файл Дополнительные каталоги включения раздел в конфигурации проекта.

Чтобы получить доступ к конфигурации проекта:

  1. Щелкните проект правой кнопкой мыши и выберите «Свойства».
  2. Выберите Свойства конфигурации->C/C++->Общие.
  3. Задайте путь в разделе «Дополнительные каталоги включения».

Как включить

К включить заголовочный файл, просто напишите в своем коде следующее:

#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), вам также потребуется добавить библиотеку во входные данные компоновщика, чтобы во время связывания символы можно было связать с ними (в противном случае вы получите неразрешенный символ):

  1. Щелкните проект правой кнопкой мыши и выберите «Свойства».
  2. Выберите Свойства конфигурации->Компоновщик->Ввод.
  3. Войдите в библиотеку в разделе «Дополнительные зависимости».

Другие советы

#include не имеет ничего общего с проектами — он просто сообщает препроцессору «поместите сюда содержимое заголовочного файла».Если вы укажете ему путь, указывающий на правильное местоположение (может быть относительным путем, например ../your_file.h), он будет включен правильно.

Однако вам придется узнать о библиотеках (статических/динамических библиотеках), чтобы правильно связывать такие проекты, но это уже другой вопрос.

Вам необходимо установить путь к заголовкам в свойствах проекта, чтобы компилятор просматривал их при попытке найти файлы заголовков.Я не могу вспомнить точное местоположение, но посмотрите свойства проекта, и вы его увидите.

Старайтесь избегать полных ссылок на пути в директиве #include, независимо от того, являются ли они абсолютными или относительными.Вместо этого добавьте местоположение папки включения другого проекта в настройках вашего проекта.При необходимости используйте в ссылках на пути только подпапки.Таким образом, будет проще перемещать вещи без необходимости обновлять код.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top