Как добавить include в visual studio
У меня возникла проблема, при которой VSCode распознает мое включение zipper.h, а затем неожиданно перевернуло меня и сказало, что такого файла или каталога нет. Я не уверен, если это проблема с моим кодом или включает или против кода.
Я попытался добавить его как к моему пути включения, так и к пути среды Windows. это продолжает терпеть неудачу по той же самой причине. Я очень смущен тем, что я делаю неправильно. Разве это не признание этих ссылок? Должен ли я компилировать библиотеки через g ++ при компиляции?
2 ответа
Вы ничего не сказали своему компилятору ни о файле с именем Zipper.h, ни о том, где он находится, ни о чем-либо связанном с ним. «g ++ test.cpp -o test» просто указывает компилятору скомпилировать исходный файл с именем test.cpp и связать его. Вы должны понимать, что код Visual Studio не является IDE и не может компилироваться сам по себе. У вас должен быть файл c_cpp_properties.json, расположенный в вашем каталоге .vscode. Например, тот, который я использую, выглядит так и настроен для mingw64.
Это сообщает Visual Studio Code, где находятся ваши исходные файлы и библиотеки. Это то, что используется для IntelliSense (подсветка синтаксиса, исправление ошибок, завершение кода и т. Д.). Однако это не имеет ничего общего с созданием вашего проекта. Ваш компилятор теперь не знает о пути включения, который вы задали в коде Visual Studio. Таким образом, чтобы скомпилировать ваш проект, вы должны рассказать своему компилятору все, что ему нужно знать. Visual Studio Code просто выполняет то, что вы указываете в задаче. Это то же самое, что перейти в этот каталог и ввести то же самое в командной строке. Поэтому я рекомендую вам прочитать о том, как скомпилировать проект c ++ с помощью g ++, ваша проблема вообще не связана с кодом Visual Studio. Если вы планируете заняться чем-то большим, чем просто один исходный файл, я настоятельно рекомендую вам изучить CMake. Компиляция путем ручного вызова gcc get становится действительно сложной, если у вас есть больше исходных файлов и включает / библиотеки для ссылок. После того, как вы настроили свой Cmake, вы можете просто указать задачу в коде Visual Studio, подобную этой, для создания своего проекта:
Это действительно хорошее объяснение того, что именно вы пытаетесь сделать в Microsoft, и помогло мне понять это, когда я начал использовать Visual Studio Code для своей работы на c ++.
Использование директив Include
filePath может быть абсолютным или относительным для текущего файла шаблона.
кроме того, конкретные расширения Visual Studio могут указывать собственные каталоги для поиска включаемых файлов. Например, если вы установили пакет SDK визуализации и моделирования (средства DSL), в список включения добавляется следующая папка: Program Files\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\DSL SDK\DSL Designer\11.0\TextTemplates .
Эти дополнительные папки включения могут зависеть от расширения включающего файла. Например, папка включения DSL Tools доступна только для включающих файлов с расширением .tt .
filePath может включать переменные среды, отделенные знаком "%". Пример:
В имени включенного файла не обязательно использовать расширение ".tt" .
Для включенных файлов можно использовать другое расширение, например ".t4" . это связано с тем, что при добавлении .tt файла в проект Visual Studio автоматически присваивает свойству пользовательского инструмента значение TextTemplatingFileGenerator . Как правило, не нужно, чтобы включенные файлы преобразовывались по отдельности.
С другой стороны, нужно помнить, что в некоторых случаях расширение файла влияет на то, в каких дополнительных папках будет выполнен поиск файлов включения. Это может оказаться важным при наличии включенного файла, содержащего другие файлы.
Используйте, once="true" чтобы убедиться, что шаблон включен только один раз, даже если он вызывается из нескольких других включаемых файлов.
MyTextTemplate.tt:
TextFile1.t4:
TextFile2.t4:
Сгенерированный в результате файл, MyTextTemplate.txt:
использование свойств проекта в MSBuild и Visual Studio
хотя в директиве include можно использовать макросы Visual Studio, например $ (SolutionDir), они не работают в MSBuild. Если требуется преобразовывать шаблоны на компьютере сборки, необходимо использовать свойства проекта.
Измените CSPROJ- или VBPROJ-файл для определения свойства проекта. В этом примере определяется свойство с именем myIncludeFolder .
Теперь можно использовать свойство проекта в текстовых шаблонах, которые будут правильно преобразовываться как в Visual Studio, так и в MSBuild:
В качестве примера мы рассмотрим подключение библиотеки SDL к нашему проекту в Visual Studio 2017 (работать будет и с более новыми версиями Visual Studio).
Шаг №1: Создаем папку для хранения библиотеки
Создаем папку Libs на диске C ( C:\Libs ).
Шаг №2: Скачиваем и устанавливаем библиотеку
Шаг №3: Указываем путь к заголовочным файлам библиотеки
Открываем свой любой проект в Visual Studio или создаем новый, переходим в "Обозреватель решений" > кликаем правой кнопкой мыши (ПКМ) по названию нашего проекта > "Свойства" :
В "Свойства конфигурации" ищем вкладку "С/С++" > "Общие" . Затем выбираем пункт "Дополнительные каталоги включаемых файлов" > нажимаем на стрелочку в конце > "Изменить" :
В появившемся окне кликаем на иконку с изображением папки, а затем на появившееся троеточие:
Заголовочные файлы находятся в папке include внутри нашей библиотеки, поэтому переходим в нее ( C:\Libs\SDL2-2.0.9\include ) и нажимаем "Выбор папки" , а затем "ОК" :
Шаг №4: Указываем путь к файлам с реализацией библиотеки
Переходим на вкладку "Компоновщик" > "Общие" . Ищем пункт "Дополнительные каталоги библиотек" > нажимаем на стрелочку в конце > "Изменить" :
Опять же, нажимаем на иконку с папкой, а затем на появившееся троеточие. Нам нужно указать следующий путь: C:\Libs\SDL2-2.0.9\lib\x86 . Будьте внимательны, в папке lib находятся две папки: x64 и x86 . Даже если у вас Windows разрядности x64, указывать нужно папку x86 . Затем "Выбор папки" и "ОК" :
После этого переходим в "Компоновщик" > "Ввод" . Затем "Дополнительные зависимости" > нажимаем на стрелочку в конце > "Изменить" :
В появившемся текстовом блоке вставляем:
Затем переходим в "Компоновщик" > "Система" . После этого "Подсистема" > нажимаем на стрелочку вниз > выбираем "Консоль (/SUBSYSTEM:CONSOLE)" > "Применить" > "ОК" :
Шаг №5: Копируем dll-ку в папку с проектом
Переходим в папку x86 ( C:\Libs\SDL2-2.0.9\lib\x86 ), копируем SDL2.dll и вставляем в папку с вашим проектом в Visual Studio. Чтобы просмотреть папку вашего проекта в Visual Studio, нажмите ПКМ по названию вашего проекта > "Открыть содержащую папку" :
Затем вставляем скопированный файл (SDL2.dll) в папку с проектом (где находится рабочий файл .cpp):
Шаг №6: Тестируем
Теперь, чтобы проверить, всё ли верно мы сделали — копируем и запускаем следующий код:
Visual Studio сводит меня с ума, и я подозреваю, что делаю что-то неправильно.
это то, что я делаю: я установил Visual Studio (Pro '08) давным-давно, я установил Windows SDK (Win 7 x64), кто-то пишет мне проект, он не может построить.
неизменно, он не может обнаружить Windows.h. В то время как это достаточно легко включить C:Program FilesMicrosoft SDKsWindowsv7.0Include в настройках проекта каждого проекта Я чувствую, что это может быть не правильный способ сделать это. Есть ли способ как-то сделать Visual Studio глобально осведомленным об этих файлах?
Я также попытался включить вышеуказанный каталог в path переменная, но это ничего не изменило.
кроме того, он будет случайным образом найти в Windows.h, но не winresrc.H в том же каталоге.
Edit:
Это была проблема с моей машиной. Каким-то образом Visual Studio подумала, что мой Windows SDK был в неправильном месте. См. раздел принятый ответ и комментарии для исправления.
вы можете установить глобальный путь включения Visual Studio здесь:
Tools / Options / Projects and Solutions / VC++ Directories / Include files
обновление (в Visual Studio 2015):
решение@RichieHindle теперь устарело с Visual Studio 2012. Как подсказка VS studio теперь гласит:
каталоги VC++ теперь доступны в виде листа свойств пользователя, который добавляется по умолчанию ко всем проектам.
чтобы задать путь включения, необходимо щелкнуть правой кнопкой мыши проект и перейти к:
чтобы возобновить рабочие решения в VisualStudio 2013 и 2015 тоже:
добавить include-path к текущему проекту только
на Обозреватель (палитра-окно VisualStudio-mainwindow), откройте контекстное меню проекта и выберите Свойства, а затем в левой панели диалогового окна страницы свойств разверните свойства конфигурации и выберите каталоги VC++. Дополнительные пути include-или lib-специфицируются там.
его что Stackunderflow и user1741137 скажите в ответах выше. Его то, что Microsoft объясняет в MSDN тоже.
добавить include-путь к каждому новому проекту автоматически
его вопрос, что Джей Элстон спрашивает в комментарии выше и что является очень очевидным и жгучим вопросом в моих глазах, что, кажется, еще не ответили здесь.
существуют обычные способы чтобы сделать это в VisualStudio (см.CurlyBrace.com), что, по моему опыту, не работает должным образом. В том смысле, что он работает только один раз, и после этого он больше не расширяется и не снимается. Приближение Стив Уилкинсон в другом близком связанном потоке StackOverflow редактирование Microsoft-Factory-XML-файла в каталоге "program files", вероятно, является рискованным взломом, поскольку Microsoft не ожидает встретить там что-то иностранное. Эффект potentally непредсказуемым. Ну, я предпочитаю судить об этом не очень рискованно, но в любом случае лучший способ сделать работу VisualStudio непонятной хотя бы для кого-то другого.
то, что работает нормально по сравнению с, это редактирование соответствующего пользователя-XML-файла:
где каталог ‘C:\any-name\include ' будет добавлен к настоящему include-path и каталогу ‘C:\any-name\lib-к библиотечной дорожке. Здесь мы можем отредактировать его в расширяющем и удаляющем смысле и удалить все это, удалив содержимое тега.
Это то, что делает VisualStudio сам, делая это в обычный способ что CurlyBrace описывает. Как уже было сказано, он не редактируется в CurlyBrace-way после этого nomore, но в XML-редактировании-это так.
для получения дополнительной информации см. Брайан Тайлер@MSDN-Blog 2009, что, по общему признанию, не очень свежо, но всегда то, на что ссылается Microsoft.
для успешного использования Windows SDK вам нужно не только сделать файлы include доступными для ваших проектов, но и файлы библиотек и исполняемые файлы (инструменты). Чтобы установить все эти каталоги, вы должны использовать Инструмент Настройки WinSDK.
Если вы только пытаетесь изменить пути включения для проекта, а не для всех решений затем в Visual Studio 2008 с этого: Щелкните правой кнопкой мыши имя проекта в навигаторе решений. Во всплывающем меню выберите пункт Свойства. В диалоговом окне страницы свойств выберите Свойства конфигурации - >C / C++ / General. Щелкните в текстовом поле рядом с меткой "дополнительные файлы" и найдите соответствующий каталог. Выберите OK.
что меня раздражает, так это то, что некоторые из ответы на исходный вопрос не относятся к упомянутой версии Visual Studio.
Читайте также: