Kurz: Vytváření multiplatformních projektů jazyka C++ v sadě Visual Studio
Vývoj pro Visual Studio C a C++ už není jenom pro Windows. V tomto kurzu se dozvíte, jak používat Visual Studio pro vývoj pro různé platformy v systémech Windows a Linux. Je založená na CMake, takže nemusíte vytvářet ani generovat projekty sady Visual Studio. Když otevřete složku, která obsahuje soubor CMakeLists.txt, Visual Studio automaticky nakonfiguruje IntelliSense a nastavení sestavení. Rychle můžete začít upravovat, vytvářet a ladit kód místně ve Windows. Potom v sadě Visual Studio přepněte konfiguraci tak, aby dělala totéž v Linuxu.
V tomto kurzu se naučíte:
- Klonování opensourcového projektu CMake z GitHubu
- otevření projektu v sadě Visual Studio
- sestavení a ladění spustitelného cíle ve 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í sady Visual Studio pro vývoj pro různé platformy C++
- Nejprve nainstalujte Sadu Visual Studio a zvolte vývoj desktopových aplikací s využitím úloh C++ a Linuxu. Tato minimální instalace je pouze 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 pro jazyk C++ pro různé platformy
Visual Studio nevyžaduje žádnou konkrétní distribuci Linuxu. Operační systém může běžet na fyzickém počítači, ve virtuálním počítači nebo v cloudu. Můžete také použít Subsystém Windows pro Linux (WSL). Pro účely tohoto kurzu se ale vyžaduje grafické prostředí. WSL se tady nedoporučuje, protože je určený především pro operace příkazového řádku.
Visual Studio vyžaduje tyto nástroje na počítači s Linuxem: kompilátory C++,
gdb
,ssh
,rsync
,make
azip
. V systémech založených na Debianu můžete pomocí tohoto příkazu nainstalovat tyto závislosti:sudo apt install -y openssh-server build-essential gdb rsync make zip
Visual Studio vyžaduje na počítači s Linuxem nejnovější verzi CMake s povoleným režimem serveru (alespoň 3.8). Microsoft vytvoří univerzální build CMake, který můžete nainstalovat na libovolnou distribuci Linuxu. Doporučujeme použít tento build, abyste měli jistotu, že máte nejnovější funkce. Binární soubory CMake můžete získat z forku Microsoftu úložiště CMake na GitHubu. Přejděte na tuto stránku a stáhněte si verzi, která odpovídá systémové architektuře 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.sh
Zobrazí se možnosti spuštění skriptu pomocí
--help
příkazu . Doporučujeme použít-prefix
možnost určit instalaci v cestě /usr , protože /usr/bin je výchozím umístěním, kde Visual Studio hledá CMake. Následující příklad ukazuje skript linux-x86_64. Pokud používáte jinou cílovou platformu, změňte ji podle potřeby.sudo ./cmake-3.11.18033000-MSVC_2-Linux-x86_64.sh --skip-license --prefix=/usr
Git pro Windows nainstalovaný na počítači s Windows.
Účet GitHub.
Klonování opensourcového projektu CMake z GitHubu
V tomto kurzu se používá sada Bullet Physics SDK na GitHubu. Poskytuje simulace detekce kolizí a fyziky pro mnoho aplikací. Sada SDK obsahuje ukázkové spustitelné programy, které kompilují a spouštějí bez nutnosti psát jiný kód. Tento kurz neupravuje žádný zdrojový kód ani skripty sestavení. Začněte tím, že naklonujete úložiště bullet3 z GitHubu na počítači, na kterém máte nainstalovanou sadu Visual Studio.
git clone https://github.com/bulletphysics/bullet3.git
V hlavní nabídce sady Visual Studio zvolte Soubor > otevřít > CMake. Přejděte do
CMakeLists.txt
souboru v kořenovém adresáři úložiště bullet3, které jste stáhli.Jakmile složku otevřete, struktura složek se zobrazí v Průzkumník řešení.
Toto zobrazení ukazuje přesně to, co je na disku, ne logické nebo filtrované zobrazení. Ve výchozím nastavení se skryté soubory nezobrazují.
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 okně Výstup vyberte Zobrazit výstup a pak zvolte CMake, abyste mohli monitorovat stav procesu generování mezipaměti. Po dokončení operace se zobrazí zpráva "Dokončení extrakce cílových informací".
Po dokončení této operace je technologie IntelliSense nakonfigurovaná. Projekt můžete sestavit 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řepněte do zobrazení cílů CMake.
Toto zobrazení vypadá jako sada Bullet SDK:
Zobrazení Cíle poskytuje intuitivnější zobrazení toho, co je v této zdrojové databázi. Některé cíle jsou knihovny a jiné jsou spustitelné soubory.
Rozbalením uzlu v zobrazení cílů CMake zobrazte jeho zdrojové soubory kódu, ať jsou tyto soubory umístěné na disku.
Přidání explicitní konfigurace windows x64-Debug
Visual Studio vytvoří výchozí konfiguraci x64-Debug pro Windows. Konfigurace jsou způsob, jakým Sada Visual Studio rozumí cíli platformy, kterou bude používat pro CMake. Výchozí konfigurace není reprezentována na disku. Když explicitně přidáte konfiguraci, Visual Studio vytvoří soubor s názvem CMake Nastavení.json. Naplní se nastavením všech zadaných konfigurací.
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 CMake Nastavení:
V tomto dialogovém okně se zobrazí všechny konfigurace, které jsou součástí sady Visual Studio, a všechny vlastní konfigurace, které vytvoříte. Pokud chcete pokračovat v používání konfigurace x64-Debug , která by měla být první, kterou přidáte. Vyberte x64-Debug a pak zvolte tlačítko Vybrat . Visual Studio vytvoří soubor CMake Nastavení.json s konfigurací pro x64-Debug a uloží ho na disk. Jakékoli názvy, které se vám líbí pro konfigurace, můžete použít tak, že změníte parametr názvu přímo v souboru CMake Nastavení.json.
Nastavení zarážky, sestavení a spuštění ve Windows
V tomto kroku ladíme ukázkový program, který demonstruje knihovnu Bullet Physics.
V Průzkumník řešení vyberte AppBasicExampleGui a rozbalte ji.
Otevřete soubor
BasicExample.cpp
.Nastavte zarážku, která se zobrazí po kliknutí ve spuštěné aplikaci. Událost kliknutí se zpracovává v metodě v pomocné třídě. Abyste se k ní rychle dostali:
Vyberte
CommonRigidBodyBase
, že strukturaBasicExample
je odvozena z. Je to kolem 30.Klikněte pravým tlačítkem myši a zvolte Přejít na definici. Teď jste v hlavičce CommonRigidBodyBase.h.
V zobrazení prohlížeče nad vaším zdrojem byste měli vidět, že jste v prohlížeči
CommonRigidBodyBase
. Napravo můžete vybrat členy, které chcete prozkoumat. Otevřete rozevírací seznam a výběrem přejdětemouseButtonCallback
k definici této funkce v záhlaví.
Umístěte zarážku na první řádek v rámci této funkce. Když v okně aplikace kliknete na tlačítko myši, dojde při spuštění pod ladicí program sady Visual Studio.
Pokud chcete aplikaci spustit, vyberte na panelu nástrojů rozevírací seznam pro spuštění. Je to ta, která má zelenou ikonu přehrávání, která říká "Vybrat položku po spuštění". V rozevíracím seznamu vyberte AppBasicExampleGui.exe. Název spustitelného souboru se teď zobrazí na tlačítku pro spuštění:
Zvolte tlačítko pro spuštění a sestavte aplikaci a potřebné závislosti a pak ji spusťte s připojeným ladicím programem sady Visual Studio. Po chvíli se zobrazí spuštěná aplikace:
Přesuňte myš do okna aplikace a kliknutím na tlačítko aktivujte zarážku. Zarážka přenese Visual Studio zpět do popředí a editor zobrazí řádek, na kterém je pozastaveno provádění. Můžete zkontrolovat proměnné aplikace, objekty, vlákna a paměť nebo interaktivně procházet kód. Zvolte Pokračovat , aby se aplikace obnovila, a pak ji normálně ukončete. Nebo pomocí tlačítka Zastavit zastavte provádění v sadě Visual Studio.
Přidání konfigurace Linuxu a připojení ke vzdálenému počítači
Přidejte konfiguraci Linuxu. V zobrazení Průzkumník řešení klikněte pravým tlačítkem myši na soubor CMake Nastavení.json a vyberte Přidat konfiguraci. Zobrazí se stejné dialogové okno Přidat konfiguraci do CMake Nastavení jako předtím. Tentokrát vyberte Linux-Debug a pak uložte soubor CMake Nastavení.json (CTRL+s).
Visual Studio 2019 verze 16.6 nebo novější přejděte dolů na konec editoru CMake Nastavení a vyberte Zobrazit upřesňující nastavení. Jako generátor CMake vyberte makefile systému Unix a pak uložte soubor CMake Nastavení.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í ke vzdálenému systému.
Dialogové okno obsahuje pole pro název hostitele, port, uživatelské jméno, typ ověřování a heslo. Všechna pole jsou prázdná s výjimkou portu je nastavená na 22 a typ ověřování je nastavený na Heslo.
Pokud jste už přidali vzdálené připojení, můžete toto okno otevřít tak, že přejdete do nástroje > Možnosti > pro různé platformy > Připojení ion Manager.
Zadejte informace o připojení k počítači s Linuxem a zvolte Připojení. Visual Studio tento počítač přidá jako CMake Nastavení.json jako výchozí připojení pro Linux-Debug. Také stáhne hlavičky ze vzdáleného počítače, takže získáte technologii IntelliSense specifickou pro toto vzdálené připojení. Potom Visual Studio odešle soubory na vzdálený počítač a vygeneruje mezipaměť CMake ve vzdáleném systému. Tyto kroky můžou nějakou dobu trvat v závislosti na rychlosti sítě a výkonu vzdáleného počítače. Víte, že je dokončený, když se v okně výstupu CMake zobrazí zpráva "Dokončení extrakce cílových informací".
Nastavení zarážky, sestavení a spuštění v Linuxu
Vzhledem k tomu, že se jedná o desktopovou aplikaci, je potřeba zadat do konfigurace ladění další informace o konfiguraci konfigurace ladění.
V zobrazení Cílů CMake klikněte pravým tlačítkem na AppBasicExampleGui a zvolte Ladit a spustit Nastavení a otevřete soubor launch.vs.json, který je ve skryté podsložce .vs. Tento soubor je místní pro vaše vývojové prostředí. Pokud ho chcete vrátit se změnami a uložit ho s týmem, můžete ho přesunout do kořenového adresáře projektu. 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 další informace ke spuštění programu, abyste ho viděli na počítači s Linuxem.
Pokud chcete najít hodnotu proměnné
DISPLAY
prostředí na počítači s Linuxem, spusťte tento příkaz:echo $DISPLAY
V konfiguraci pro AppBasicExampleGui je pole parametrů pipeArgs. Obsahuje řádek${debuggerCommand}. Je to příkaz, který se spustí
gdb
na vzdáleném počítači. Před spuštěním tohoto příkazu musí Visual Studio vyexportovat zobrazení do tohoto kontextu. Pokud je:1
například hodnota zobrazení , 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 AppBasicExampleGui. Pak buď vyberte zelenou ikonu přehrávání na panelu nástrojů, nebo stiskněte klávesu F5. Aplikace a její závislosti jsou založené na vzdáleném počítači s Linuxem a pak se spustí pomocí připojeného ladicího programu sady Visual Studio. Na vzdáleném počítači s Linuxem by se mělo zobrazit okno aplikace.
Přesuňte myš do okna aplikace a klikněte na tlačítko. Zarážka je zarážka. Provádění programu se pozastaví, Visual Studio se vrátí do popředí a uvidíte zarážku. V sadě Visual Studio by se také mělo zobrazit okno konzoly pro Linux. Okno poskytuje výstup ze vzdáleného počítače s Linuxem a může také přijmout vstup pro
stdin
. Stejně jako u každého okna sady Visual Studio ho můžete ukotvit tam, kde ho chcete vidět. Jeho pozice je zachována v budoucích relacích.Výstup v okně označuje, že funkce C11 dynamicky načtené pomocí dlopen/dlsym je OK, byl vytvořen kontext GL 3.0 a vykreslovací kontext Direct GLX získal a provedl aktuální. Okno obsahuje různé informace o verzi pro GL_VENDOR, GL_VERSION, GL_SHADING_LANGUAGE_VERSION atd.
Pomocí sady Visual Studio můžete prozkoumat proměnné aplikace, objekty, vlákna, paměť a procházet kód interaktivně. Tentokrát to ale děláte na vzdáleném počítači s Linuxem místo místního prostředí Windows. Pokud chcete, aby se aplikace normálně obnovila a ukončila, můžete zvolit tlačítko Zastavit, stejně jako u místního spuštění.
Podívejte se do okna Zásobník volání a prohlédněte si volání
x11OpenGLWindow
od spuštění aplikace v sadě Visual Studio v Linuxu.Calltack ukazuje zarážku na CommonRigidBodyBase::mouseMoveCallback, a volání, která předchází, jako je OnMouseMove, X11OpenGLWindow::p umpMessage atd.
Co jste se naučili
V tomto kurzu jste naklonovali základ kódu přímo z GitHubu. Vytvořili jste, spustili a ladili jste ho ve Windows bez úprav. Pak jste použili stejný základ kódu s dílčími změnami konfigurace, k sestavení, spuštění a ladění na vzdáleném počítači s Linuxem.
Další kroky
Další informace o konfiguraci a ladění projektů CMake v sadě Visual Studio:
Projekty CMake v sadě Visual Studio
Konfigurace projektu Linux CMake
Připojení ke vzdálenému počítači s Linuxem
Vlastní nastavení sestavení CMake
Konfigurace ladicích relací CMake
Nasazení, spuštění a ladění projektu Linux
Referenční informace opředdefinované konfiguraci CMake vcpkg v projektechCMake – Instalace a použití balíčků s CMake v sadě Visual Studio