Как открыть компоновщик в visual studio
как настроить Visual Studio Code на работу с С++ после установки нужных плагинов? Visual Studio не подходит, ест много ресурсов, да и функционал немного другой.
Компилятор установлен? VSCode просто навороченный блокнот. Visual Studio ест меньше ресурсов, VS Code - это же браузерное решение. "после установки нужных плагинов" Вопрос интересно поставлен. Половина настройки как раз в выборе хороших плагинов. Что вы уже поставили?примерно год назад я точно так же не мог с первого раза настроить VS Code.
Как справедливо указали в комментариях - есть прекрасная официальная документация по настройке. Тем не менее, я оставлю свой ответ, так как он более детальный в некоторых моментах. А в других моментах - менее детальный :-)
Чтобы настроить VSC, хорошо бы научиться компилировать и запускать Вашу программу из командной строки. А потом настройки, котрые для этого понадобились, добавить в правильные места в файлах конфигурации VS code.
Труднность этого процесса именно в "зоопарке" разных возможностей. На этого не стоит пугаться.
Кроме того, настройка немного отличатся для разных систем (Linux, windows, macos), а Вы не указали, какая система у вас.
Я приведу пример настройки для компилятора gcc под Win64. Можно повторить мои шаги, а когда получится - сделать самостотельную настройку, например, на другой компилятор.
Устанавливаем msys2. Я установил его в C:\Programs\msys64 . При этом сам msys2 позаботился о том, чтобы путь к его директории C:\Programs\msys64\mingw64\bin оказался в path. Проверить это можно, выполнив в консоли команду path
Устанавливаем компилятор и дебаггер. Я делаю это с помощью пакета msys2, выполнив в окне, котрое открывает msys2, следующие команды:
Эта команда обновляет msys2. Она может закрыть консоль - это нормально, нужно перезапустить ее и ввести ту же команду, чтобы завершить обновление. Хорошей идеей будет время от времени обновляться, чтобы всегда иметь последнюю версию компилятора.
Теперь в Вашей системе есть компилятор и дебаггер. Проверить это просто: открываем новое окно консоли, пишем g++ --version
Если ответом не является версия - надо поискать, что пошло не так. Проверить path, возможно, отредактировать его вручную.
Такую же проверку хорошо бы сделат для дебаггера: gdb --version
Пишем hello world. Это позволит нам окончательно убедиться, что компилятор работает. в любой директории созадем файл hello.cpp с текстом
потом в этой папке в командной строке компилируем командой g++ hello.cpp -o hello.exe Если появился файл hello.exe, и он запускается и вывоит строчку - ок, этот шаг завершен.
А вот теперь можно поставить VSC. Обратите внимание, что редакций есть несколько, во первых для 32 и 64 битных систем, а во вторых - то, что назывется "User Installer" и "System Installer". Выбираем 64 битный System Installer на странице загрузки
В VSC ставим расширение для работы с C++, оно называется C/C++ for Visual Studio Code и написано Microsoft
Теперь запустим VSC в папке Вашего проекта. Пусть это будет папка C:\Projects\ . Делается это так: запускам консоль. Переходим в консоли в папку ( cd C:\Projects\ ). Запускаем VSC командой code . .
Важно то, что при этом создаётся папка настроек VSC, котрые находятся по пути C:\Projects\.vscode . В этой папке нужно создать 4 файла, я приведу их в минимальном варианте. Пути - для моей системы, где msys2 установлен в C:\Programs\msys64\ .
Файл tasks.json - отвечает за то, чтобы работала комбинация клавиш Ctrl+shift+B для сборки программы:
Файл launch.json - отвечает за работу дебаггера:
Файл settings.json - как то отвечает за файловые ассоциации, возможно даже, что он не особо нужен. Но лишним не будет:
Файл c_cpp_properties.json - отвечает за расположение include - файлов:
Если Вы создадите эти файлы, а потом заново запустите в этой директории VSC - то всё уже должно работать. То есть, программы на C++ будут компилироваться, запускаться в отладке (по F5) и показывать значения переменных в окне отладчика.
Теперь - самое важное. Как только заработает - Вам нужно эту папку .vscode копировать к корень каждой папки с проектом на C++. Это позволит VSC запускаться с Вашими настройками.
Даже если мой способ Вам не подходит напрямую - у Вас теперь есть все необходимые ключевые слова, чтобы использовать их для гуглежа.
PS. Время от времени попадаются полезные дополнительные возможности для настройки.
В интегрированной среде разработки все сведения, необходимые для сборки проекта, представлены в виде свойств. Эти сведения включают в себя имя приложения, расширение (например, DLL, EXE, LIB), параметры компилятора, параметры компоновщика, параметры отладчика, настраиваемые этапы сборки и многие другие компоненты. Как правило, для просмотра и изменения этих свойств используются страницы свойств. Чтобы перейти к страницам свойств, в главном меню выберите Проект > Свойства имя_проекта или щелкните правой кнопкой мыши узел проекта в обозревателе решений и выберите пункт Свойства.
Свойства по умолчанию
При создании проекта система задает значения для различных свойств. Значения по умолчанию варьируются в зависимости от типа проекта и параметров, выбранных в мастере приложений. Например, проект ATL имеет свойства, относящиеся к файлам MIDL, но в базовом консольном приложении они отсутствуют. В области "Общие" на страницах свойств отображаются свойства по умолчанию:
Применение свойств к конфигурациям сборок и целевым платформам
Некоторые свойства, такие как имя приложения, применяются ко всем вариантам сборки, независимо от целевой платформы и того, предназначена ли эта сборка для отладки или выпуска. Однако большинство свойств зависит от конфигурации. Это вызвано тем, что компилятор должен знать, на какой именно платформе будет запускаться программа и какие именно параметры компилятора нужно использовать для создания правильного кода. Таким образом, при установке свойства важно следить за тем, для какой конфигурации и платформы должно применяться новое значение. Нужно ли применить его только для сборок отладки Win32 либо еще и для сборок отладки ARM и отладки x64? Например, свойство Оптимизации по умолчанию имеет значение Наибольшая скорость (/O2) в конфигурации выпуска, но отключено в конфигурации отладки.
На следующем рисунке показана та же страница свойств проекта, но конфигурация изменена на выпуск. Обратите внимание на другое значение для свойства "Оптимизация". Кроме того, обратите внимание, что активной конфигурацией по-прежнему является отладка. Здесь вы можете задать свойства для любой конфигурации, а не только активной.
Целевые платформы
Целевая платформа обозначает тип устройства и/или операционной системы, где будет запускаться исполняемый файл. Вы можете создать проект для нескольких платформ. Доступные целевые платформы для проектов C++ зависят от вида проекта. Среди прочего, к ним относятся Win32, x64, ARM, Android и iOS. Целевая платформа X86, которую вы могли заметить в Configuration Manager, идентична Win32 в собственных проектах C++. Win32 означает 32-разрядную версию Windows, а x64 — 64-разрядную. Дополнительные сведения об этих двух платформах см. в разделе Запуск 32-разрядных приложений.
Дополнительные сведения настройке свойств отладочной сборки см. в следующих разделах:
Параметры компилятора и компоновщика C++
Параметры компилятора и компоновщика C++ находятся в узлах C/C++ и Компоновщик на панели слева в разделе Свойства конфигурации. Эти данные преобразуются непосредственно в параметры командной строки, которые будут переданы компилятору. Чтобы ознакомиться с документацией по конкретному параметру, выберите параметр в центральной области и нажмите клавишу F1. Также можно просмотреть документацию по всем параметрам в разделах Параметры компилятора MSVC и Параметры компоновщика MSVC.
Значения каталога и пути
MSBuild поддерживает использование констант времени компиляции, называемых "макросами", для определенных строковых значений, включая каталоги и пути. Они представлены на страницах свойств, на которых можно просмотреть и изменить их с помощью редактора свойств.
На следующем рисунке показаны страницы свойств для проекта Visual Studio C++. В области слева выбрано правило Каталоги VC++ , а в области справа отображаются свойства, связанные с этим правилом. Значения $(. ) называются макросами. Макрос является константой времени компиляции, которая может ссылаться на значение, определенное Visual Studio или системой MSBuild, или пользовательское значение. Использование макросов вместо жестко заданных значений, таких как пути к каталогам, упрощает совместное использование параметров свойств на разных компьютерах и в разных версиях Visual Studio, а также позволяет гарантировать, что параметры проекта правильно участвуют в наследовании свойств.
Для просмотра значений всех доступных макросов можно использовать редактор свойств.
Предустановленные макросы
глобальные макросы
Применяются ко всем элементам в конфигурации проекта. Синтаксис: $(name) . Пример глобального макроса — свойство $(VCInstallDir) , которое сохраняет корневой каталог установки Visual Studio. Глобальный макрос соответствует элементу PropertyGroup в MSBuild.
макросы элементов
Синтаксис: %(name) . В случае файла макрос элемента применяется только к этому файлу — для примера можно использовать %(AdditionalIncludeDirectories) , чтобы определить каталоги, которые применяются только к конкретному файлу. Этот тип макроса элемента соответствует метаданным ItemGroup в MSBuild. При использовании в контексте конфигурации проекта макрос элемента применяется ко всем файлам определенного типа. Например, свойство конфигурации C/C++ Определения препроцессора может принимать макрос элемента %(PreprocessorDefinitions) , который применяется ко всем CPP-файлам в проекте. Этот тип макроса элемента соответствует метаданным ItemDefinitionGroup в MSBuild. Дополнительные сведения см. в разделе Определения элементов.
Пользовательские макросы
Вы можете создавать пользовательские макросы для использования в качестве переменных в сборках проекта. Например, можно создать пользовательский макрос, предоставляющий значение пользовательскому шагу сборки или пользовательскому средству сборки. Пользовательский макрос — это пара "имя-значение". Для доступа к этому значению в файле проекта используется нотация $(name) .
Пользовательский макрос хранится на странице свойств. Если проект еще не содержит страницу свойств, можно создать ее, выполнив одно из действий, описанных в разделе Совместное или повторное использование параметров проекта Visual Studio.
Создание пользовательского макроса
В левой области диалогового окна выберите Пользовательские макросы. В правой области нажмите кнопку Добавить макрос, чтобы открыть диалоговое окно Добавление пользовательского макроса.
В диалоговом окне задайте имя и значение для макроса. Кроме того, можно установить флажок Задание данного макроса в качестве переменной среды в среде сборки.
Редактор свойств
Редактор свойств можно использовать для изменения некоторых строковых свойств и выбора макросов в качестве значений. Чтобы открыть редактор свойств, выберите свойство на странице свойств, а затем нажмите кнопку со стрелкой вниз справа. Если раскрывающийся список содержит команду <Edit> , можно выбрать ее, чтобы открыть редактор свойств для данного свойства.
В редакторе свойств можно нажать кнопку Макросы, чтобы просмотреть доступные макросы и их текущие значения. На следующем рисунке показан редактор свойств для свойства Дополнительные каталоги включаемых файлов после нажатия кнопки Макросы. Если вы добавляете новое значение, когда установлен флажок Наследовать от родителя или от значений по умолчанию для проекта, оно добавляется ко всем значениям, которые в данный момент наследуются. Если снять флажок, новое значение заменяет наследуемые значения. В большинстве случаев следует не снимать этот флажок.
Добавление каталога включения к набору каталогов по умолчанию
При добавлении каталога включения в проект важно не переопределить все каталоги по умолчанию. Правильный способ добавления каталога — добавить новый путь, например "C:\MyNewIncludeDir", и затем добавить макрос $(IncludePath) к значению свойства.
Быстрый просмотр и поиск всех свойств
Без префикса:
поиск только в именах свойств (подстрока без учета регистра).
"/" или "-":
поиск только в параметрах компилятора (префикс без учета регистра)
v:
поиск только в значениях (подстрока без учета регистра).
Задание переменных среды для сборки
Компилятор MSVC (cl.exe) распознает определенные переменные среды, в частности LIB, LIBPATH, PATH и INCLUDE. При сборке с помощью интегрированной среды разработки для задания этих переменных среды используются свойства, заданные на странице свойств Каталоги VC++. Если значения LIB, LIBPATH, и ВКЛЮЧАЕТ уже заданы, например с помощью командной строки разработчика, они заменяются значениями соответствующих свойств MSBuild. Сборка затем добавляет значение свойства каталогов исполняемых файлов "Каталоги VC++" в начало переменной PATH. Для задания пользовательской переменной среды можно создать пользовательский макрос и затем установить флажок Задание данного макроса в качестве переменной среды в среде сборки.
Задание переменных среды для сеанса отладки
В правой области измените параметры проекта Среда или Объединение среды, а затем нажмите кнопку ОК.
Содержание раздела
Совместное или повторное использование параметров проекта Visual Studio
Создание файла PROPS с настраиваемыми параметрами сборки, которые можно использовать совместно или повторно.
Наследование свойств проекта
Описывается порядок вычисления для файлов PROPS, TARGETS, VCXPROJ и переменных среды в процессе сборки.
Изменение свойств и целевых объектов без изменения файла проекта
Создание временных параметров сборки без изменения файла проекта.
БлогNot. Как собрать проект C++ с github из исходников и подключить его к Visual Studio
Как собрать проект C++ с github из исходников и подключить его к Visual Studio
Благодаря менеджеру пакетов winget, уже входящему в актуальные сборки масдайки, теперь в Windows 10 можно инсталлировать приложения одной простой консольной командой (см. также доку от Микрософта).
Но мы рассмотрим сейчас ситуацию, когда у нас есть только ссылка на исходники проекта, скажем, на Гитхабе (возьмём для примера библиотеку для простых чисел primesieve) и нужно каким-то образом скомпилировать внешний проект в своей Studio, чтобы воспользоваться его возможностями в своём приложении.
В противном случае, конечно же, нестандартный include вроде этого, который вы нашли в коде-образце
работать не будет ни за что.
Первым делом скачаем все исходники внешнего проекта "как есть" в архиве .zip, для этого у нас на гитхабе есть кнопка "Download ZIP":
Как загрузить проект с github в архиве .zip
Развернём проект, не создавая новой папки, если у вашего архиватора нет такого же пункта меню, просто сотрите предлагаемое архиватором имя новой папки, потому что папка уже есть в архиве:
Извлечь внешний проект из архива, не создавая новой папки
Если покопаться в файле readme.md проекта, как правило, можно найти инструкцию по установке (Build instructions) и даже "Detailed build instructions", где говорится, в числе прочего, и о компиляции проекта под Microsoft Visual C++:
Команды cmake для компиляции проекта со страницы документации
Откроем свой "некомпилируемый" без нужной библиотеки проект в Studio (я использую актуальную сборку версии 2019) и обратимся к команде меню Вид - Терминал. Выберем инструмент "Командная строка разработчика" (по умолчанию в новых сборках теперь выбран PowerShell, впрочем, если в документации приведены команды PowerShell, то применяйте их).
У Микрософта инструмент описан вот здесь.
Командная строка разработчика в Studio
В командной строке пишем команды из документации, но сначала, конечно, нужно перейти в ту папку, где у вас развёрнут скачанный проект. Мне понадобилось ввести в консоли следующее, завершая каждую команду нажатием Enter:
- теперь я в нужной папке, так как развернул свой архив в папку d:\temp
Далее как написано:
Можно просто копировать команды со страницы документации, в окне консоли вверху есть стандартная кнопочка "Вставить". А вот точка в записи команд имеет значение, это ссылка на текущую папку!
Ну и, конечно, для другой версии Studio будет другое указание компилятора, узнать своё можно командой
Нужный генератор будет помечен в списке "звёздочкой".
Теперь проект можно открывать в Studio и работать с ним, все нужные файлы есть в папке d:\temp\primesieve-master
Но мы хотим подключить всё, что нужно, к своему имеющемуся проекту, а не пытаться модифицировать чужую библиотеку.
- Меню Проект - Свойства, слева выбираем Свойства конфигурации, C/C++, Общие, раскрываем поле "Дополнительные каталоги включаемых файлов", говорим "Изменить" и показываем на папку D:\Temp\primesieve-master\include . В вашем проекте, как правило, тоже будет вложенная папка include .
- В том же окне выбираем Компоновщик - Общие - Дополнительные каталоги библиотек, "Изменить" и добавляем путь D:\Temp\primesieve-master\Release . Этого может оказаться мало, у вашего проекта и внешнего должны быть выбраны одинаковые конфигурации решения. Так как я выбрал Release для внешнего проекта, то и в своём проекте в списке "Конфигурации решения" (на стандартной панели инструментов) указал Release и платформу x64. Можно было работать и с Debug, но тогда и внешний проект компилируем как Debug и потом выбираем путь D:\Temp\primesieve-master\Debug .
- В списке C/C++ - Создание кода - Библиотека времени выполнения выбрал Многопоточный DLL (/MD), иначе будет "LNK2038: обнаружено несоответствие для 'RuntimeLibrary': значение 'MT_StaticRelease' не соответствует значению 'MD_DynamicRelease' в file.obj".
- Сам файл библиотеки, как правило имеющий тип .lib , тоже нужно прописать. Всё в том же окне свойства проекта выбираем список Компоновщик - Ввод, раскрываем список "Дополнительные зависимости", жмём "Изменить" и указываем в поле ввода имя файла библиотеки primesieve.lib
- На всякий случай, проверяем, что у нас в списке Компоновщик - Система - Подсистема, у меня там просто Консоль (/SUBSYSTEM:CONSOLE) , для других типов проектов может понадобиться изменение и этой настройки.
После этого у меня всё заработало.
Ну а конкретная задача, на которой я проверял библиотеку - печать самых длинных цепочек последовательных простых чисел, в которых разница между соседними значениями строго возрастает или строго убывает, предел счёта равен 1000000, вот сама программа:
Ответы вышли такие:
За счёт хорошо оптимизированного кода библиотеки считается всё мгновенно.
В качестве примера мы рассмотрим подключение библиотеки 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: Тестируем
Теперь, чтобы проверить, всё ли верно мы сделали — копируем и запускаем следующий код:
Читайте также: