C ++ Kompatibilitas Biner dan Peningkatan Tanpa Rasa Sakit ke Visual Studio 2019

Visual Studio 2019 mendorong batas produktivitas individu dan tim . Kami berharap Anda akan menemukan kapabilitas baru ini menarik dan segera memulai peningkatan Anda ke Visual Studio 2019.


Saat Anda mempertimbangkan peningkatan ini, yakinlah bahwa Visual Studio 2019 membuatnya mudah untuk memindahkan basis kode Anda dari versi Visual Studio sebelumnya. Posting ini menangkap alasan mengapa pemutakhiran Anda ke Visual Studio 2019 bebas dari rasa sakit.



Instalasi Visual Studio berdampingan


Anda dapat menginstal versi Visual Studio terbaru di komputer yang sudah memiliki versi sebelumnya diinstal dan terus menggunakan kedua versi secara paralel tanpa gangguan. Ini adalah cara terbaik untuk mencoba Visual Studio 2019 atau mengadopsinya untuk beberapa proyek Anda. Penginstal Visual Studio akan memungkinkan Anda mengelola instalasi Visual Studio 2017 dan 2019 dari UI pusat.


Gambar Visual Studio Installer yang menampilkan VS 2017 dan VS 2019 dipasang berdampingan


Perkakas MSVC v140 (VS 2015.3) dan MSVC v141 (VS 2017) di Visual Studio 2019 IDE


Bahkan jika Anda belum siap untuk memindahkan proyek Anda ke toolset terbaru (MSVC v142), Anda masih dapat memuat proyek Anda di Visual Studio 2019 IDE dan terus menggunakan toolset lama Anda saat ini.


Memuat proyek C ++ Anda yang ada ke dalam IDE tidak akan meningkatkan / mengubah file proyek Anda. Dengan cara ini, proyek Anda juga memuat dalam versi IDE sebelumnya jika Anda perlu kembali atau Anda memiliki rekan tim yang belum diupgrade ke VS 2019 (fungsi ini juga dikenal sebagai project round-tripping ).


Toolset dari instalasi VS yang lebih lama di komputer Anda terlihat sebagai platform toolets di IDE terbaru. Dan jika Anda mulai baru dengan hanya VS 2019 yang terinstal di mesin Anda, sangat mudah untuk mendapatkan toolet yang lebih lama ini langsung dari Visual Studio Installer dengan menyesuaikan beban kerja C ++ Desktop (dengan tab Komponen Individual mencantumkan semua opsi).


Tab VS Installer Individual Components menampilkan daftar lengkap komponen C ++ yang tersedia di VS 2019


Toolset v142 baru sekarang tersedia


Di dalam gelombang Visual Studio 2019 (pratinjau, ketersediaan umum, dan pembaruan di masa mendatang), kami berencana untuk terus mengembangkan kompiler dan pustaka C ++ kami dengan


  • fitur C ++ 20 baru,
  • lebih cepat membangun throughput, dan
  • optimasi codegen yang lebih baik.

Toolset MSVC v142 sekarang tersedia dan sudah membawa beberapa insentif bagi Anda untuk bermigrasi.


VC Runtime dalam toolset MSVC v142 terbaru adalah biner yang kompatibel dengan v140 dan v141


Kami mendengarnya dengan keras dan jelas bahwa alasan utama yang berkontribusi pada adopsi cepat MSVC v141 hari ini adalah kompatibilitas binernya dengan MSVC v140. Ini memungkinkan Anda untuk memigrasi kode Anda sendiri ke toolset v141 sesuai keinginan Anda sendiri, tanpa harus menunggu ketergantungan perpustakaan pihak ketiga mana pun untuk dimigrasi terlebih dahulu.


Kami ingin menjaga momentum terus berjalan dan memastikan bahwa Anda memiliki pengalaman adopsi yang sama suksesnya dengan MSVC v142 juga. Inilah sebabnya kami mengumumkan hari ini bahwa tim kami berkomitmen untuk menyediakan kompatibilitas biner untuk MSVC v142 dengan MSVC v141 dan v140 .


Ini berarti bahwa jika Anda mengkompilasi semua kode Anda dengan toolset v142 tetapi masih memiliki satu atau lebih perpustakaan yang dibangun dengan toolset v140 atau v141, menghubungkan semua itu bersama-sama (dengan linker terbaru) akan bekerja seperti yang diharapkan. Untuk memungkinkan ini, VC Runtime tidak mengubah versi utamanya di VS 2019 dan tetap kompatibel dengan versi VC Runtime sebelumnya.


C:\source\repos\TimerApp\Debug>dumpbin TimerApp2019.exe /IMPORTS | findstr .dll mfc140ud.dll KERNEL32.dll USER32.dll GDI32.dll COMCTL32.dll OLEAUT32.dll gdiplus.dll VCRUNTIME140D.dll ucrtbased.dll 2EE _seh_filter_dll 

Ketika Anda mencampur binari yang dibangun dengan versi yang berbeda dari set tool MSVC, ada persyaratan versi untuk VCRedist yang Anda bagikan kembali dengan aplikasi Anda. Secara khusus, VCRedist tidak boleh lebih tua dari versi toolset yang digunakan untuk membangun aplikasi Anda.


Ratusan pustaka C ++ pada Vcpkg tersedia terlepas dari toolset yang Anda gunakan


Jika Anda menggunakan Vcpkg hari ini dengan VS 2015 atau VS 2017 untuk satu atau lebih dependensi open-source Anda, Anda akan senang mengetahui bahwa perpustakaan ini (mendekati 900 pada saat penulisan ini) sekarang dapat dikompilasi dengan MSVC toolset v142 dan tersedia untuk konsumsi dalam proyek Visual Studio 2019.


Jika Anda baru memulai dengan Vcpkg, jangan khawatir - Vcpkg adalah proyek open-source dari Microsoft untuk membantu menyederhanakan akuisisi dan pembangunan perpustakaan C ++ open-source pada Windows, Linux, dan Mac .


Karena v142 kompatibel dengan biner dengan v141 dan v140, semua paket yang sudah Anda instal juga akan terus bekerja di VS 2019 tanpa kompilasi ulang; namun, kami merekomendasikan kompilasi ulang saat Anda bisa sehingga Anda dapat menikmati optimisasi kompiler baru yang telah kami tambahkan ke v142!


Jika Anda memiliki VS 2019 Pratinjau diinstal berdampingan dengan versi VS yang lebih lama (mis. VS 2017), Vcpkg akan lebih memilih rilis stabil, jadi Anda perlu mengatur variabel triplet Vcpkg VCPKG_PLATFORM_TOOLSET ke v142 untuk menggunakan toolset MSVC terbaru.


Versi kompiler MSVC berubah menjadi 19.2x (dari 19.1x dalam MSVC v141)


Last but not least, bagian kompiler dari toolset MSVC v142 mengubah versinya menjadi 19,20 - hanya peningkatan versi minor dibandingkan dengan MSVC v141.


Editor VS dengan Info Cepat menunjukkan bahwa _MSC_VER makro sama dengan 1920
Perhatikan bahwa makro uji fitur didukung dalam kompiler MSVC dan STL dimulai dengan MSVC v141 dan mereka harus menjadi pilihan yang disukai untuk memungkinkan kode Anda untuk mendukung beberapa versi MSVC.


Ajakan untuk bertindak


Silakan unduh Visual Studio 2019 hari ini dan beri tahu kami pendapat Anda. Tujuan kami adalah membuat transisi Anda ke VS 2019 semudah mungkin, seperti biasa, kami sangat tertarik dengan umpan balik Anda. Kami dapat dihubungi melalui komentar di bawah ini atau melalui email ( visualcpp@microsoft.com ).
Jika Anda mengalami masalah lain dengan Visual Studio atau MSVC atau memiliki saran, beri tahu kami melalui Bantuan> Kirim Umpan Balik> Laporkan Masalah / Berikan Saran di produk, atau melalui Komunitas Pengembang . Anda juga dapat menemukan kami di Twitter di @VisualC .

Source: https://habr.com/ru/post/id439664/


All Articles