Kurz: Vytváření projektů v jazyce C++ pro různé platformy v sadě Visual Studio
Visual Studio C a C++ už není jenom pro Windows prostředí. Tento kurz ukazuje, jak používat Visual Studio pro vývoj pro více platforem v jazyce C++ na Windows a Linuxu. Je založená na CMake, takže nemusíte vytvářet ani generovat Visual Studio projekty. Když otevřete složku, která obsahuje soubor CMakeLists.txt, Visual Studio intellisense a nastavení sestavení automaticky. Úpravy, sestavování a ladění kódu můžete rychle zahájit místně na Windows. Pak přepněte konfiguraci tak, aby to samé š pněte v Linuxu, a to vše z Visual Studio.
V tomto kurzu se naučíte:
- klonování open source projektu CMake z GitHub
- otevřete projekt v Visual Studio
- sestavení a ladění cíle spustitelného souboru na Windows
- přidání připojení k počítači s Linuxem
- Sestavení a ladění stejného cíle v Linuxu
Požadavky
Nastavení Visual Studio pro vývoj v jazyce C++ pro více platforem
- Nejprve nainstalujte Visual Studio a zvolte vývoj desktopových aplikací pomocí C++ a Linuxu pomocí úloh C++. Tato minimální instalace je jenom 3 GB. V závislosti na rychlosti stahování by instalace neměla trvat déle než 10 minut.
Nastavení počítače s Linuxem pro vývoj v jazyce C++ pro více platforem
Visual Studio nevyžaduje žádnou konkrétní distribuci Linuxu. Operační systém může běžet na fyzickém počítači, na virtuálním počítači nebo v cloudu. Můžete také použít Subsystém Windows pro Linux (WSL). Pro tento kurz se ale vyžaduje grafické prostředí. WSL se zde nedoporučuje, protože je určený především pro operace příkazového řádku.
Visual Studio počítače s Linuxem vyžadují tyto nástroje: kompilátory C++, gdb, ssh, rsync, make a zip. V systémech založených na distribuci Debian můžete pomocí tohoto příkazu nainstalovat tyto závislosti:
sudo apt install -y openssh-server build-essential gdb rsync make zipVisual Studio počítači s Linuxem, který má povolený režim serveru (minimálně 3.8), vyžaduje nejnovější verzi CMake. Microsoft vytváří univerzální build CMake, který můžete nainstalovat do libovolné distribuce Linuxu. Doporučujeme použít toto sestavení k zajištění, že máte nejnovější funkce. Binární soubory CMake můžete získat z forku Microsoftu v repo CMake na GitHub. Přejděte na tuto stránku, stáhněte si verzi, která odpovídá architektuře systému na počítači s Linuxem, a pak ji označte jako spustitelný soubor:
wget <path to binary> chmod +x cmake-3.11.18033000-MSVC_2-Linux-x86_64.shMožnosti spuštění skriptu můžete zobrazit pomocí
-–help. Doporučujeme použít možnost k zadání instalace v cestě–prefix–prefixprotože /usr/bin je výchozí umístění, kde Visual Studio CMake. Následující příklad ukazuje skript linuxového x86_64. Podle potřeby ho změňte, pokud používáte jinou cílovou platformu.sudo ./cmake-3.11.18033000-MSVC_2-Linux-x86_64.sh --skip-license --prefix=/usr
Git pro Windows nainstalovaný na Windows počítači.
Účet GitHub.
Klonování open source projektu CMake z GitHub
Tento kurz používá sadu Bullet Physics SDK na GitHub. Poskytuje simulaci detekce kolizí a fyziky pro mnoho aplikací. Sada SDK obsahuje ukázkové spustitelné programy, které se zkompilují a spustí bez nutnosti psát další kód. Tento kurz neupravuje žádný zdrojový kód ani skripty sestavení. Začněte tím, že naklonovat úložiště bullet3 GitHub na počítači, na kterém jste Visual Studio nainstalovali.
git clone https://github.com/bulletphysics/bullet3.git
V hlavní Visual Studio zvolte Soubor Otevřít > CMake. V kořenovém adresáři CMakeLists.txt bullet3, které jste právě stáhli, přejděte k souboru s odrážkami.

Jakmile složku otevřete, struktura složek se zobrazí v souboru Průzkumník řešení.

Toto zobrazení ukazuje přesně to, co je na disku, nikoli logické nebo filtrované zobrazení. Ve výchozím nastavení se v ní nezískané skryté soubory.
Pokud chcete zobrazit všechny soubory ve složce, zvolte tlačítko Zobrazit všechny soubory.

Přepnutí na zobrazení cílů
Když otevřete složku, která používá CMake, Visual Studio automaticky vygeneruje mezipaměť CMake. Tato operace může chvíli trvat v závislosti na velikosti projektu.
V okno Výstupvyberte Zobrazit výstup z a pak zvolte CMake, abyste monitorovat stav procesu generování mezipaměti. Po dokončení operace se zobrazí "Dokončení extrakce cílových informací".

Po dokončení této operace je nakonfigurovaná technologie IntelliSense. Můžete sestavit projekt a ladit aplikaci. Visual Studio teď zobrazuje logické zobrazení řešení na základě cílů zadaných v souborech CMakeLists.
Pomocí tlačítka Řešení a složky v Průzkumník řešení přepnout na CMake Targets View (Zobrazení cílů CMake).

Toto zobrazení vypadá pro sadu Bullet SDK:

Zobrazení cílů poskytuje intuitivnější zobrazení toho, co je v této zdrojové bázi. Vidíte, že některé cíle jsou knihovny a jiné spustitelné soubory.
Rozbalte uzel v zobrazení cílů CMake a zobrazte jeho soubory se zdrojovým kódem bez ohledu na to, kde se tyto soubory můžou na disku nachysovat.
Přidání explicitní konfigurace Windows x64-Debug
Visual Studio vytvoří výchozí konfiguraci x64-Debug pro Windows. Konfigurace jsou způsob Visual Studio jak rozumí cílové platformě, kterou bude používat pro CMake. Výchozí konfigurace není na disku reprezentována. Když explicitně přidáte konfiguraci, Visual Studio soubor s názvem CMakeSettings.json. Naplní se nastavením pro všechny konfigurace, které zadáte.
Přidejte novou konfiguraci. Otevřete rozevírací seznam Konfigurace na panelu nástrojů a vyberte Spravovat konfigurace.

Otevře se editor Nastavení CMake. Výběrem zeleného znaménka plus na levé straně editoru přidejte novou konfiguraci. Zobrazí se dialogové okno Přidat konfiguraci do CMakeSettings.

V tomto dialogovém okně se zobrazí všechny konfigurace, které Visual Studio, a také všechny vlastní konfigurace, které vytvoříte. Pokud chcete dál používat konfiguraci x64-Debug, měla by to být první konfigurace, kterou přidáte. Vyberte x64-Debuga pak zvolte tlačítko Vybrat. Visual Studio soubor CMakeSettings.json s konfigurací pro x64-Debuga uloží ho na disk. Jakékoli názvy pro vaše konfigurace můžete použít tak, že změníte parametr name přímo v souboru CMakeSettings.json.
Nastavení zarážky, sestavení a spuštění na Windows
V tomto kroku budeme ladit příklad programu, který předvede knihovnu Bullet Physics.
V Průzkumník řešení vyberte AppBasicExampleGui arozbalte ho.
Otevřete soubor
BasicExample.cpp.Nastavte zarážku, ke které dojde, když kliknete na spuštěnou aplikaci. Událost kliknutí se zpracovává v metodě v rámci třídy pomocné rutiny. Pokud se tam chcete rychle dostat:
Vyberte,
CommonRigidBodyBaseze kteréBasicExamplestruktury je odvozena. Je to kolem řádku 30.Klikněte pravým tlačítkem a zvolte Přejít k definici. Teď jste v hlavičce CommonRigidBodyBase.h.
V zobrazení prohlížeče nad zdrojem byste měli vidět, že jste v
CommonRigidBodyBase. Napravo můžete vybrat členy k prohlédnutí. Otevřete rozevírací nabídku a vyberte možnostmouseButtonCallbackPřejít k definici této funkce v hlavičce.
Umístěte zarážku na první řádek v rámci této funkce. když kliknete na tlačítko myši v rámci aplikace, bude dosaženo při spuštění pod ladicím programem Visual Studio.
Chcete-li spustit aplikaci, vyberte na panelu nástrojů možnost spustit v rozevíracím seznamu. Je to ikona se zelenou Play, která uvádí "vybrat položku po spuštění". V rozevíracím seznamu vyberte možnost AppBasicExampleGui.exe. Název spustitelného souboru se nyní zobrazí na spouštěcím tlačítku:

klikněte na tlačítko spustit a sestavte aplikaci a nezbytné závislosti a pak ji spusťte s připojeným Visual Studio ladicí program. Po chvíli se spustí běžící aplikace:

Přesuňte myš do okna aplikace a potom kliknutím na tlačítko aktivujte zarážku. zarážka přináší Visual Studio zpět do popředí a editor zobrazuje řádek, kde je provádění pozastaveno. Můžete kontrolovat proměnné aplikace, objekty, vlákna a paměť nebo krokovat kód prostřednictvím kódu interaktivně. Zvolte pokračovat , aby se aplikace obnovila, a pak ji obvyklým způsobem ukončete. nebo zastavení provádění v rámci Visual Studio pomocí tlačítka zastavit.
Přidejte konfiguraci pro Linux a připojte se ke vzdálenému počítači.
Přidejte konfiguraci pro Linux. V zobrazení Průzkumník řešení klikněte pravým tlačítkem na soubor CMakeSettings. JSON a vyberte Přidat konfiguraci. Zobrazí se stejná dialogová okna Přidat konfiguraci do CMakeSettings jako předtím. Vyberte Linux – ladění tentokrát a pak uložte soubor CMakeSettings. JSON (CTRL + s).
Visual Studio 2019 verze 16,6 nebo novější se posuňte dolů k dolnímu rohu editoru Nastavení cmake a vyberte možnost zobrazit upřesňující nastavení. Jako generátor cmakevyberte UNIX makefiles a pak uložte soubor CMakeSettings. JSON (CTRL + s).
V rozevíracím seznamu konfigurace vyberte Linux-Debug .

pokud se připojujete k systému Linux poprvé, zobrazí se dialogové okno Připojení do vzdáleného systému .

Pokud jste už přidali vzdálené připojení, můžete toto okno otevřít tak, že přejdete na Možnosti nástroje >> Správce připojení pro různé platformy.
zadejte informace o připojení k počítači se systémem Linux a vyberte možnost Připojení. Visual Studio přidá tento počítač jako výchozí připojení pro Linux-Debugjako výchozí připojení pro CMakeSettings. json. Vyžádá si také hlavičky ze vzdáleného počítače, takže získáte technologii IntelliSense specifickou pro toto vzdálené připojení. v dalším kroku Visual Studio odesílá soubory do vzdáleného počítače a vygeneruje mezipaměť cmake ve vzdáleném systému. Tyto kroky můžou nějakou dobu trvat, v závislosti na rychlosti vaší sítě a výkonu vzdáleného počítače. Budete vědět, že je to hotové, když se v okně výstup CMake zobrazí zpráva "extrakce cílových informací byla dokončena".
Nastavení zarážky, sestavení a spuštění v systému Linux
Vzhledem k tomu, že se jedná o desktopovou aplikaci, je nutné zadat další konfigurační informace pro konfiguraci ladění.
v zobrazení cílů cmake klikněte pravým tlačítkem na AppBasicExampleGui a vyberte ladit a spustit Nastavení . otevře se soubor Launch. vs. json, který se nachází v podsložce skryté . vs . Tento soubor je místní pro vaše vývojové prostředí. Můžete ho přesunout do kořenového adresáře projektu, pokud ho chcete vrátit se změnami a uložit ho do svého týmu. V tomto souboru byla přidána konfigurace pro AppBasicExampleGui. Tato výchozí nastavení fungují ve většině případů, ale ne tady. Vzhledem k tomu, že se jedná o desktopovou aplikaci, musíte zadat nějaké další informace, abyste mohli spustit program, abyste ho viděli na počítači se systémem Linux.
Pokud chcete zjistit hodnotu proměnné prostředí
DISPLAYna svém počítači se systémem Linux, spusťte tento příkaz:echo $DISPLAYV konfiguraci pro AppBasicExampleGui je k dispozici pole parametrů "pipeArgs". Obsahuje řádek: $ {debuggerCommand}. Je to příkaz, který spouští GDB na vzdáleném počítači. Visual Studio musí před spuštěním tohoto příkazu exportovat zobrazení do tohoto kontextu. Například pokud je hodnota zobrazení
:1, upravte tento řádek následujícím způsobem:"export DISPLAY=:1;${debuggerCommand}",Spusťte a ladit aplikaci. Otevřete rozevírací seznam Vybrat položku po spuštění na panelu nástrojů a zvolte možnost AppBasicExampleGui. Dále zvolte zelenou ikonu přehrávání na panelu nástrojů nebo stiskněte klávesu F5. aplikace a její závislosti jsou postavené na vzdáleném počítači se systémem Linux a pak byly spuštěny s připojeným Visual Studio ladicímu programu. Na vzdáleném počítači se systémem Linux by se mělo zobrazit okno aplikace.
Přesuňte myš do okna aplikace a klikněte na tlačítko. Zarážka je dosaženo. spuštění programu je pozastaveno, Visual Studio se vrátí zpět do popředí a zobrazí se zarážka. V Visual Studio by se měla zobrazit také okno konzoly pro Linux. Okno poskytuje výstup ze vzdáleného počítače se systémem Linux a může také přijmout vstup pro
stdin. stejně jako v případě Visual Studioho okna můžete ho ukotvit tam, kde ho dáváte přednost. Jeho pozice je trvalá v budoucích relacích.
Můžete zkontrolovat proměnné aplikace, objekty, vlákna, paměť a krokovat kód pomocí Visual Studio interaktivně. v tuto chvíli ale provádíte vše na vzdáleném počítači se systémem Linux namísto místního prostředí Windows. Můžete zvolit pokračovat , aby se aplikace normálně obnovila a ukončila, nebo můžete zvolit tlačítko Zastavit, stejně jako při místním spuštění.
podívejte se na okno zásobník volání a zobrazte volání,
x11OpenGLWindowprotože Visual Studio spustil aplikaci v systému Linux.
Co jste se naučili
V tomto kurzu jste naklonováni základ kódu přímo z GitHub. sestavili jste, spustili a rozladíte ji na Windows bez úprav. Pak jste použili stejný základ kódu s menšími změnami konfigurace pro sestavení, spuštění a ladění na vzdáleném počítači se systémem Linux.
Další kroky
Další informace o konfiguraci a ladění projektů CMake v Visual Studio: