Öğretici: Visual Studio'da C++ platformlar arası projeler oluşturma
Visual Studio C ve C++ geliştirmesi artık yalnızca Windows için değil. Bu öğreticide, Windows ve Linux'ta C++ platformlar arası geliştirme için Visual Studio'yu nasıl kullanacağınız gösterilmektedir. CMake'yi temel aldığından Visual Studio projeleri oluşturmanız veya oluşturmanız gerekmez. CMakeLists.txt dosyası içeren bir klasörü açtığınızda, Visual Studio IntelliSense ve derleme ayarlarını otomatik olarak yapılandırıyor. Windows'da kodunuzu yerel olarak düzenlemeye, oluşturmaya ve hata ayıklamaya hızla başlayabilirsiniz. Ardından, yapılandırmanızı Linux'ta da aynı işlemi yapacak şekilde değiştirin ve bunların tümünü Visual Studio'dan gerçekleştirin.
Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- GitHub'dan açık kaynak CMake projesi kopyalama
- projeyi Visual Studio'da açma
- Windows'ta yürütülebilir hedef oluşturma ve hata ayıklama
- Linux makinesine bağlantı ekleme
- Linux'ta aynı hedefi oluşturma ve hatalarını ayıklama
Önkoşullar
Platformlar Arası C++ Geliştirme için Visual Studio'yu ayarlama
- İlk olarak Visual Studio'yu yükleyin ve C++ ile Masaüstü geliştirme ve C++ iş yükleriyle Linux geliştirme'yi seçin. Bu minimum yükleme yalnızca 3 GB'tır. İndirme hızınıza bağlı olarak yükleme 10 dakikadan uzun sürmemelidir.
Platformlar Arası C++ Geliştirme için Linux makinesi ayarlama
Visual Studio belirli bir Linux dağıtımı gerektirmez. İşletim sistemi fiziksel bir makinede, VM'de veya bulutta çalışıyor olabilir. Linux için Windows Alt Sistemi (WSL) de kullanabilirsiniz. Ancak bu öğretici için grafik ortam gereklidir. WSL burada önerilmez, çünkü öncelikle komut satırı işlemleri için tasarlanmıştır.
Visual Studio, Linux makinesinde şu araçları gerektirir: C++ derleyicileri,
gdb
,ssh
,rsync
,make
vezip
. Debian tabanlı sistemlerde şu bağımlılıkları yüklemek için bu komutu kullanabilirsiniz:sudo apt install -y openssh-server build-essential gdb rsync make zip
Visual Studio, Linux makinesinde sunucu modunun etkin olduğu son bir CMake sürümü gerektirir (en az 3.8). Microsoft, herhangi bir Linux dağıtımına yükleyebileceğiniz evrensel bir CMake derlemesi oluşturur. En son özelliklere sahip olduğunuzdan emin olmak için bu derlemeyi kullanmanızı öneririz. CMake ikili dosyalarını GitHub'da CMake deposunun Microsoft çatalından alabilirsiniz. Bu sayfaya gidin ve Linux makinenizdeki sistem mimarisiyle eşleşen sürümü indirin ve yürütülebilir dosya olarak işaretleyin:
wget <path to binary> chmod +x cmake-3.11.18033000-MSVC_2-Linux-x86_64.sh
betiği ile
--help
çalıştırma seçeneklerini görebilirsiniz. /usr/bin, Visual Studio'da CMake'nin arandığı varsayılan konum olduğundan /usr yolunda yüklemeyi belirtme seçeneğini kullanmanızı-prefix
öneririz. Aşağıdaki örnekte Linux-x86_64 betiği gösterilmektedir. Farklı bir hedef platform kullanıyorsanız gerektiği gibi değiştirin.sudo ./cmake-3.11.18033000-MSVC_2-Linux-x86_64.sh --skip-license --prefix=/usr
Windows makinenizde yüklü pencereler için Git.
Bir GitHub hesabı.
GitHub'dan açık kaynak CMake projesi kopyalama
Bu öğreticide GitHub'da Bullet Physics SDK'sı kullanılır. Birçok uygulama için çarpışma algılama ve fizik simülasyonları sağlar. SDK, başka kod yazmak zorunda kalmadan derlenen ve çalışan örnek yürütülebilir programlar içerir. Bu öğretici, kaynak kodun veya derleme betiklerinin hiçbirini değiştirmez. Başlamak için, Visual Studio'yu yüklediğiniz makinede GitHub'dan bullet3 deposunu kopyalayın.
git clone https://github.com/bulletphysics/bullet3.git
Visual Studio ana menüsünde Dosya > Aç > CMake'i seçin.
CMakeLists.txt
İndirdiğiniz bullet3 deposunun kökündeki dosyaya gidin.Klasörü açar açmaz, klasör yapınız Çözüm Gezgini görünür hale gelir.
Bu görünüm size mantıksal veya filtrelenmiş bir görünüm değil, diskte tam olarak ne olduğunu gösterir. Varsayılan olarak gizli dosyaları göstermez.
Klasördeki tüm dosyaları görmek için Tüm dosyaları göster düğmesini seçin.
Hedefler görünümüne geçme
CMake kullanan bir klasörü açtığınızda, Visual Studio otomatik olarak CMake önbelleğini oluşturur. Bu işlem, projenizin boyutuna bağlı olarak birkaç dakika sürebilir.
Çıktı Penceresinde, Çıktıyı göster'i seçin ve ardından önbellek oluşturma işleminin durumunu izlemek için CMake'yi seçin. İşlem tamamlandığında "Hedef bilgi ayıklama işlemi tamamlandı" ifadesi yer alır.
Bu işlem tamamlandıktan sonra IntelliSense yapılandırılır. Projeyi derleyebilir ve uygulamada hata ayıklayabilirsiniz. Visual Studio artık CMakeLists dosyalarında belirtilen hedefleri temel alarak çözümün mantıksal bir görünümünü gösterir.
CMake Hedefleri Görünümü'ne geçmek için Çözüm Gezgini Çözümler ve Klasörler düğmesini kullanın.
Madde İşareti SDK'sı için bu görünüm şöyle görünür:
Hedefler görünümü, bu kaynak temeldekilerin daha sezgisel bir görünümünü sağlar. Bazı hedeflerin kitaplık, bazılarının ise yürütülebilir dosya olduğunu görebilirsiniz.
CMake Hedefleri Görünümü'nde bir düğümü genişleterek kaynak kod dosyalarını, bu dosyaların diskte bulunabileceği her yerde görebilirsiniz.
Açık bir Windows x64-Debug yapılandırması ekleme
Visual Studio, Windows için varsayılan bir x64-Debug yapılandırması oluşturur. Yapılandırmalar, Visual Studio'nun CMake için hangi platform hedeflerini kullanacağını anlama şeklidir. Varsayılan yapılandırma diskte temsil değildir. Açıkça bir yapılandırma eklediğinizde, Visual Studio CMake Ayarlar.json adlı bir dosya oluşturur. Belirttiğiniz tüm yapılandırmalar için ayarlarla doldurulur.
Yeni bir yapılandırma ekleyin. Araç çubuğunda Yapılandırma açılan listesini açın ve Yapılandırmaları Yönet'i seçin.
CMake Ayarlar Düzenleyicisi açılır. Yeni bir yapılandırma eklemek için düzenleyicinin sol tarafındaki yeşil artı işaretini seçin. CMake'ye Yapılandırma Ekle Ayarlar iletişim kutusu görüntülenir:
Bu iletişim kutusu, Visual Studio'ya dahil edilen tüm yapılandırmaların yanı sıra oluşturduğunuz tüm özel yapılandırmaları gösterir. Eklediğiniz ilk yapılandırma olması gereken bir x64-Debug yapılandırması kullanmaya devam etmek istiyorsanız. x64-Hata Ayıkla'yı ve ardından Seç düğmesini seçin. Visual Studio, x64-Debug yapılandırmasıyla CMake Ayarlar.json dosyasını oluşturur ve diske kaydeder. Ad parametresini doğrudan CMake Ayarlar.json dosyasında değiştirerek yapılandırmalarınız için istediğiniz adları kullanabilirsiniz.
Windows'ta kesme noktası ayarlama, derleme ve çalıştırma
Bu adımda, Madde İşareti Fiziği kitaplığını gösteren örnek bir programda hata ayıklayacağız.
Çözüm Gezgini AppBasicExampleGui'yi seçin ve genişletin.
BasicExample.cpp
dosyasını açın.Çalışan uygulamaya tıkladığınızda isabet alan bir kesme noktası ayarlayın. Tıklama olayı bir yardımcı sınıfı içindeki bir yöntemde işlenir. Hızlı bir şekilde oraya ulaşmak için:
Yapının
BasicExample
türetildiğini seçinCommonRigidBodyBase
. 30. hat civarında.Sağ tıklayın ve Tanıma Git'i seçin. Artık CommonRigidBodyBase.h üst bilgisindesiniz.
Kaynağınızın üzerindeki tarayıcı görünümünde içinde olduğunuzu
CommonRigidBodyBase
görmeniz gerekir. Sağ tarafta inceleyecek üyeleri seçebilirsiniz. Açılan listeyi açın ve üst bilgide bu işlevin tanımına gitmek için öğesini seçinmouseButtonCallback
.
Bu işlevin içindeki ilk satıra bir kesme noktası yerleştirin. Uygulama penceresindeki bir fare düğmesine tıkladığınızda, Visual Studio hata ayıklayıcısı altında çalıştırıldığında bu tuşa basılır.
Uygulamayı başlatmak için araç çubuğundaki başlat açılan listesini seçin. "Başlangıç Öğesini Seç" yazan yeşil oynatma simgesine sahip olandır. Açılan listede AppBasicExampleGui.exe'yi seçin. Yürütülebilir ad artık başlat düğmesinde görüntülenir:
Uygulamayı ve gerekli bağımlılıkları oluşturmak için başlat düğmesini seçin, ardından Visual Studio hata ayıklayıcısı ekli olarak başlatın. Birkaç dakika sonra çalışan uygulama görüntülenir:
Farenizi uygulama penceresine taşıyın ve kesme noktasını tetikleyen bir düğmeye tıklayın. Kesme noktası Visual Studio'yu ön plana geri getirir ve düzenleyici yürütmenin duraklatıldığı satırı gösterir. Uygulama değişkenlerini, nesneleri, iş parçacıklarını ve belleği inceleyebilir veya kodunuzda etkileşimli olarak adım adım ilerleyebilirsiniz. Uygulamanın sürdürülmesine izin vermek için Devam'ı seçin ve ardından normal şekilde çıkın. Alternatif olarak, durdur düğmesini kullanarak Visual Studio'da yürütmeyi durdurabilirsiniz.
Linux yapılandırması ekleme ve uzak makineye bağlanma
Linux yapılandırması ekleyin. Çözüm Gezgini görünümünde CMake Ayarlar.json dosyasına sağ tıklayın ve Yapılandırma Ekle'yi seçin. CMake'ye Yapılandırma Ekle Ayarlar iletişim kutusunu daha önce gördüğünüz gibi görürsünüz. Bu kez Linux-Debug'ı seçin, ardından CMake Ayarlar.json dosyasını (ctrl + s) kaydedin.
Visual Studio 2019 sürüm 16.6 veya üzeri CMake Ayarlar Düzenleyicisi'nin altına kadar aşağı kaydırın ve Gelişmiş ayarları göster'i seçin. CMake oluşturucu olarak Unix Makefiles'ı seçin, ardından CMake Ayarlar.json dosyasını (ctrl + s) kaydedin.
Yapılandırma açılan listesinde Linux-Debug'ı seçin.
Bir Linux sistemine ilk kez bağlanıyorsanız Uzak Sisteme Bağlan iletişim kutusu görüntülenir.
İletişim kutusunda konak adı, bağlantı noktası, kullanıcı adı, kimlik doğrulama türü ve parola alanları vardır. Bağlantı noktası 22 ve Kimlik doğrulama türü Parola olarak ayarlanmış dışında tüm alanlar boş.
Zaten bir uzak bağlantı eklediyseniz, Araçlar > Seçenekler Platformlar > Arası Bağlantı Yöneticisi'ne giderek bu > pencereyi açabilirsiniz.
Linux makinenize bağlantı bilgilerini sağlayın ve Bağlan seçin. Visual Studio bu makineyi CMake Ayarlar.json dosyasına Linux-Debug için varsayılan bağlantınız olarak ekler. Ayrıca uzak makinenizdeki üst bilgileri de çeker, böylece bu uzak bağlantıya özgü IntelliSense'i elde edersiniz. Ardından, Visual Studio dosyalarınızı uzak makineye gönderir ve uzak sistemde CMake önbelleğini oluşturur. Bu adımlar, ağınızın hızına ve uzak makinenizin gücüne bağlı olarak biraz zaman alabilir. CMake çıkış penceresinde "Hedef bilgi ayıklama tamamlandı" iletisi görüntülendiğinde işlemin tamam olduğunu biliyorsunuz.
Linux'ta kesme noktası ayarlama, derleme ve çalıştırma
Bu bir masaüstü uygulaması olduğundan, hata ayıklama yapılandırmasına bazı yapılandırma bilgileri sağlamanız gerekir.
CMake Hedefleri görünümünde AppBasicExampleGui'ye sağ tıklayın ve Hata Ayıkla ve Başlat Ayarlar'ı seçerek gizli .vs alt klasöründeki launch.vs.json dosyasını açın. Bu dosya geliştirme ortamınızda yereldir. Projeyi iade etmek ve ekibinizle birlikte kaydetmek isterseniz projenizin köküne taşıyabilirsiniz. Bu dosyada AppBasicExampleGui için bir yapılandırma eklenmiştir. Bu varsayılan ayarlar çoğu durumda çalışır ancak burada çalışmaz. Bu bir masaüstü uygulaması olduğundan, linux makinenizde görebilmeniz için programı başlatmak için bazı ek bilgiler sağlamanız gerekir.
Linux makinenizde ortam değişkeninin
DISPLAY
değerini bulmak için şu komutu çalıştırın:echo $DISPLAY
AppBasicExampleGui yapılandırmasında "pipeArgs" adlı bir parametre dizisi vardır. Şu satırı içerir: "${debuggerCommand}". Uzak makinede başlatılan
gdb
komut. Visual Studio, bu komut çalışmadan önce görüntüyü bu bağlama aktarmalıdır. Örneğin, görüntünüzün değeri ise:1
, bu satırı aşağıdaki gibi değiştirin:"export DISPLAY=:1;${debuggerCommand}",
Uygulamanızı başlatın ve hatalarını ayıklayın. Araç çubuğunda Başlangıç Öğesi Seç açılan listesini açın ve AppBasicExampleGui'yi seçin. Ardından, araç çubuğundaki yeşil oynatma simgesini seçin veya F5 tuşuna basın. Uygulama ve bağımlılıkları uzak Linux makinesinde oluşturulur, ardından Visual Studio hata ayıklayıcısı ekli olarak başlatılır. Uzak Linux makinenizde bir uygulama penceresi görmeniz gerekir.
Farenizi uygulama penceresine taşıyın ve bir düğmeye tıklayın. Kesme noktasına isabet edilir. Program yürütme duraklatılır, Visual Studio ön plana döner ve kesme noktanızı görürsünüz. Visual Studio'da bir Linux Konsol Penceresi de görmeniz gerekir. Pencere uzak Linux makinesinden çıkış sağlar ve için
stdin
girişi de kabul edebilir. Herhangi bir Visual Studio penceresi gibi, görmeyi tercih ettiğiniz yere yerleştirebilirsiniz. Konumu gelecekteki oturumlarda kalıcı hale gelecek.Penceredeki çıkış, C11 işlevlerinin dlopen/dlsym kullanılarak dinamik olarak yüklendiğini, bir GL 3.0 bağlamı oluşturulduğunu ve Doğrudan GLX işleme bağlamı alınıp güncel hale getirildiğini gösterir. Pencerede GL_VENDOR, GL_VERSION, GL_SHADING_LANGUAGE_VERSION vb. için çeşitli sürüm bilgileri bulunur.
Visual Studio kullanarak uygulama değişkenlerini, nesneleri, iş parçacıklarını, belleği inceleyebilir ve kodunuzda etkileşimli olarak ilerleyebilirsiniz. Ancak bu kez, bunların tümünü yerel Windows ortamınız yerine uzak bir Linux makinesinde yapacaksınız. Uygulamanın normal şekilde sürdürülmesine ve çıkışına izin vermek için Devam'ı seçebilir veya yerel yürütmede olduğu gibi durdur düğmesini seçebilirsiniz.
Visual Studio uygulamayı Linux'ta başlattığından beri Çağrı Yığını penceresine
x11OpenGLWindow
bakın ve çağrıları görüntüleyin.Çağrı yığını CommonRigidBodyBase::mouseMoveCallback üzerindeki kesme noktasını ve ondan önceki çağrıları gösterir; örneğin, OnMouseMove, X11OpenGLWindow::p umpMessage vb.
Öğrendikleriniz
Bu öğreticide, doğrudan GitHub'dan bir kod tabanı kopyalamıştınız. Windows'ta değişiklik yapmadan derlediğiniz, çalıştırdığınız ve hata ayıkladığınız. Ardından, uzak bir Linux makinesinde derlemek, çalıştırmak ve hata ayıklamak için küçük yapılandırma değişiklikleriyle aynı kod tabanını kullandınız.
Sonraki adımlar
Visual Studio'da CMake projelerini yapılandırma ve hata ayıklama hakkında daha fazla bilgi edinin:
Visual Studio'da CMake Projeleri
Linux CMake projesi yapılandırma
Uzak Linux bilgisayarınıza bağlanma
CMake derleme ayarlarını özelleştirme
CMake hata ayıklama oturumlarını yapılandırma
Linux projenizi dağıtma, çalıştırma ve projenizin hatalarını ayıklama
CMake projelerindeCMake önceden tanımlanmış yapılandırma başvurusuvcpkg Visual Studio'da CMake ile paketleri yükleme ve kullanma