Перемещенные файлы в проекте, и теперь я не могу найти пространства имен - PullRequest
0 голосов
/ 17 января 2019

Ранее все мои исходные файлы в одной и той же папке разбросаны, но я устал от беспорядка, поэтому я создал иерархию папок, упорядочил заголовки и файлы .cpp в этих папках и изменил ClInclude теги в файле проектов .vcxproj соответственно. Затем я изменил все строки #include в исходных заголовках, чтобы они соответствовали новому расположению заголовков.

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

Если я напишу

using namespace

автозаполнение просто находит пространство имен, и в текстовом интерфейсе красные волнистые линии не отображаются.

Я использую VS17 Community.

Ответы [ 2 ]

0 голосов
/ 17 января 2019

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

#include "..\Math\math.h"

Это будет отлично работать. Вы можете также изменить свои свойства проекта C ++, чтобы добавить список включаемых каталогов. Это будет очень полезно для вас, когда вы начнете работать над проектами, которые используют много библиотек. Чтобы добавить включаемые каталоги, вам необходимо:

  1. щелкните правой кнопкой мыши на своем проекте в обозревателе решений и выберите Свойства.
  2. На левой панели щелкните вкладку C / C ++> General .
  3. В свойстве, которое говорит Дополнительные каталоги включения , щелкните стрелку раскрывающегося списка (сначала вам может понадобиться щелкнуть текст внутри) и выберите Изменить ...

Отсюда вы можете добавить список включаемых каталогов, которые вы будете использовать в своем проекте. Вы можете использовать:

Абсолютные Пути

C:\Path\to\Math

Относительные пути (относительно вашего файла .vcxproj)

..\..\relative\path\to\Math

Макросы (Visual Studio выведет список доступных макросов)

($SolutionDir)..\path\to\Math

Вы увидите, как часто используются макросы, когда речь идет о C ++ и других проектах Visual Studio не только для включаемых каталогов, но и для событий сборки.

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

#include "math.h"

Если вам нужно использовать относительный путь из одной из включенных вами папок, вы также можете сделать это.

// some directory inside of Math
#include "MoreMath\moremath.h"
// some directory above Math
#include "..\AboveMath\abovemath.h"

Надеюсь, это поможет!

0 голосов
/ 17 января 2019

Я решил это ...

Удалите этот вопрос, если необходимо. Проблема заключалась в том, что я не возвращал путь к файлу в моем #include "math.h". Вместо этого они должны были сказать #include "..\Math\math.h".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...