Заголовочные файлы проекта MS Visual Studio - PullRequest
6 голосов
/ 05 февраля 2010

Я довольно новичок в разработке кода C / C ++ в MSVS, но одна вещь, которая уже смутила меня, - это почему, после добавления набора исходных и заголовочных файлов в мой проект, чтобы они отображались соответственно в папках MSVS «Исходные файлы» и «Заголовочные файлы», нужно ли мне впоследствии указать компилятору, где мои заголовочные файлы находятся в «Project-> properties-> C / C ++ -> General». Мне кажется, что MSVS уже должна пытаться разрешить любые операторы «include» ... », сначала просматривая набор заголовочных файлов, которые я включил в проект.

Кто-нибудь хочет прокомментировать используемую здесь логику?

Спасибо, Travis

Ответы [ 6 ]

3 голосов
/ 05 февраля 2010

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

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

3 голосов
/ 05 февраля 2010

Файлы проекта используются IDE для отслеживания ваших файлов, но компилятор не имеет доступа к этой информации. Путь включаемого файла передается каждому исходному файлу при компиляции.

2 голосов
/ 05 февраля 2010

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

Еще одна вещь состоит в том, что наличие каталогов, где искать файлы заголовков, является исторической особенностью (в значительной степени?) Всех компиляторов.

Таким образом, в вашем проекте Visual Studio вы можете использовать только файлы заголовков: возможность легко открывать их из Visual Studio. Вот и все!

2 голосов
/ 05 февраля 2010

На самом деле, добавление ваших заголовочных файлов в так называемую папку «Заголовочные файлы» не является обязательным. Даже не делая того же самого, вы можете просто указать путь к заголовку в «Project-> Properties -> ....», и он все равно будет работать.

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

Таким образом, чтобы объединить все включения в одной конфигурации, этот путь должен был быть выбран.

Все сказанное выше - только мое понимание. У меня нет никаких доказательств в поддержку этого. Итак, заранее извиняюсь, что это неправильно. Не бомбардируйте меня Даунвотами, пожалуйста. :)

1 голос
/ 05 февраля 2010

Прежде всего, вы создали новый проект C / C ++? Если это так, он должен создать каталог в месте по вашему выбору. Как только это будет сделано, вы можете щелкнуть правой кнопкой мыши по вашему проекту (в окне решения в MSVS) и добавить новый файл в ваш проект. Например, вы можете добавить исходный файл (.cpp) и файл заголовка (.h) в проект. Как только это будет сделано, вы должны написать #include "yourfile.h" в вашем исходном файле, чтобы иметь возможность включить файл заголовка в ваш исходный файл. Обратите внимание, что вы можете добавлять новые файлы и существующие файлы. Надеюсь, это поможет!

0 голосов
/ 06 февраля 2010

Я никогда не сталкивался с этой проблемой. Как только вы создали проект и добавили в свой IDE тот же самый файл заголовка папки проекта в IDE, вы можете добавить файл заголовка с помощью #include и скомпилировать ваш исходный код. если нужный файл заголовка не существует в той же папке, в которой вы создаете проект, вы должны добавить каталог заголовка в свойствах проекта, как вы сказали:)

...