Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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'ni (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,makevezip. 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 zipVisual 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.shbetiği ile
--helpçalıştırma seçeneklerini görebilirsiniz.-prefix/bin, Visual Studio'da CMake'nin arandığı varsayılan konum olduğundan /usr yolunda yüklemeyi belirtme seçeneğini kullanmanızı ö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.
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'nde 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'ndeki Çözümlerve Klasörler düğmesini kullanın.
Bullet SDK için bu görünüm şöyle:
Hedefler görünümü, bu kaynaktaki öğelerin daha sezgisel bir görünümünü sunar. 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 CMakeSettings.jsonadlı 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. CMakeSettings'e Yapılandırma Ekle 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 CMakeSettings.json dosyasını oluşturur ve diske kaydeder. Ad parametresini doğrudan CMakeSettings.jsoniçinde 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'nde AppBasicExampleGui öğesini seçin ve genişletin.
BasicExample.cppdosyasını açın.Çalışan uygulamaya tıkladığınızda tetiklenen 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
CommonRigidBodyBasetüretildiğini seçinBasicExample. 30. hat civarında.Sağ tıklayın ve Tanıma Git seçin. Artık CommonRigidBodyBase.h üst bilgisindesiniz.
Kaynağınızın üzerindeki tarayıcı görünümünde
CommonRigidBodyBaseiçinde olduğunuzu görmelisiniz. Sağ tarafta inceleyecek üyeleri seçebilirsiniz. Açılır listeyi açın ve başlıktaki bu işlevin tanımına gitmek içinmouseButtonCallbackseçeneğini seçin.
Bu işlevin içindeki ilk satıra bir kesme noktası yerleştirin. Visual Studio hata ayıklayıcısı altında çalıştırıldığında, uygulama penceresindeki bir fare düğmesine tıkladığınızda bir olay tetiklenir.
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 listeden AppBasicExampleGui.exeöğesini 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
Bir Linux yapılandırması ekleyin. Çözüm Gezgini görünümünde CMakeSettings.json dosyasına sağ tıklayın ve Yapılandırma Ekle'yi seçin. CMakeSettings'e Yapılandırma Ekle iletişim kutusunu daha önce gördüğünüz gibi görürsünüz. Bu kez Linux-Debug'ı seçin, ardından CMakeSettings.json dosyasını (ctrl + s) kaydedin.
Visual Studio 2019 sürüm 16.6 veya üzeri CMake Ayarlar Düzenleyicisi'nin en 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 CMakeSettings.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 Linux-Debug için varsayılan bağlantınız olarak CMakeSettings.json olarak ekler. Ayrıca uzak makinenizdeki headerları da çeker, böylece bu uzak bağlantıya özel 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 öğesine sağ tıklayın ve Hata Ayıkla ve Başlat Ayarları'nı seçerek gizli .vs alt klasöründeki launch.vs.json dosyasını açın. Bu dosya geliştirme ortamınızda yereldir. Projeyi ekibinizle paylaşmak ve kaydetmek isterseniz, dosyayı projenizin kök dizinine 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
DISPLAYdeğerini bulmak için şu komutu çalıştırın:echo $DISPLAYAppBasicExampleGui yapılandırmasında "pipeArgs" adlı bir parametre dizisi vardır. Şu satırı içerir: "${debuggerCommand}". Uzak makinede
gdbbaşlatan komut bu. 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. Uzak Linux makinesinden çıkış sağlayan pencere,
stdiniçin de girdi 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 bakın ve
x11OpenGLWindow'e yapılan ç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::pumpMessage 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 projelerinde CMake önceden tanımlanmış yapılandırma başvurusuvcpkgVisual Studio'da CMake ile paketleri yükleme ve kullanma