GNU/Linux >> Belajar Linux >  >> Linux

Cara mengkompilasi kode Visual C++ Windows di Linux

Selama Anda menulis kode dengan cara portabel (tidak menggunakan fungsi khusus OS/kompiler seperti windows.h atau ekstensi kompiler tertentu) dan menggunakan pustaka portabel yang harus dikompilasi dengan Visual studio dan GCC.

Masalahnya adalah meskipun keduanya bekerja, mereka melakukannya sedikit berbeda. Sebagian besar itu adalah pengaturan default yang berbeda, yang mungkin harus Anda timpa secara eksplisit. Sebagai contoh:

  • Visual Studio 2017 dan yang lebih baru default ke C++ 14. Gunakan opsi /std untuk menentukan standar yang berbeda.

  • GCC memiliki set default, tetapi memungkinkan Anda untuk mengubah standar yang Anda gunakan untuk kompilasi. Mengkompilasi dengan

    g++ example.cpp
    

    menggunakan standar default (standar C++98 untuk GCC sebelum versi 6 dan C++14 untuk GCC setelah versi 6). Kode Anda tampaknya gagal karena Anda menggunakan fitur C++11 tetapi kompiler Anda menggunakan standar lama secara default.

    g++ -std=c++11 example.cpp
    

    harus membuat beberapa kesalahan Anda hilang dengan secara eksplisit menentukan standar, dalam hal ini standar C++11.

Ini hanyalah trade off yang berbeda yang dipilih oleh kompiler. Memiliki hanya satu standar yang didukung mungkin membuat dukungan dan memperbaiki kesalahan lebih mudah, karena Anda tidak memiliki kompiler berbeda + kombinasi versi standar yang mungkin memiliki bug berbeda. Mampu mengubah standar yang digunakan untuk kompilasi membuatnya lebih mudah untuk menguji apakah suatu program bekerja dengan baik dengan standar baru atau perubahan apa yang harus Anda perbaiki dll...

Secara umum GCC lebih minimal dan Anda secara eksplisit menentukannya jika Anda ingin melakukan beberapa hal tambahan. Saya akan merekomendasikan menggunakan sesuatu seperti:

g++ -Wall -Wextra -pedantic -std=c++11 example.cpp

Menggunakan -Wall dan -Wextra berikan tingkat peringatan yang layak untuk memulai dengan -pedantic memberi tahu Anda jika Anda mencoba menggunakan ekstensi kompiler yang berfungsi tetapi akan membuat kode Anda kurang portabel, dan yang terakhir, Anda harus selalu menentukan standar yang ingin Anda gunakan, baik itu -std=c++11 , -std=c++14 atau -std=c++98 yang lebih lama .


Anda mungkin juga ingin melihat kemungkinan pengembangan dan debugging jarak jauh menggunakan VS 2015 dan ekstensi Pengembangan Linux.Visual C++ untuk Pengembangan Linux (30 Maret 2016)


Linux
  1. Linux – Bagaimana Cara Menghapus Instalasi Grub?

  2. Cara Mengkompilasi dan Menginstal Perangkat Lunak dari Kode Sumber di Linux

  3. Mendeteksi Windows atau Linux di C, C++

  1. Bagaimana cara membuat kode modul kernel Linux?

  2. Bisakah Clang mengkompilasi kode dengan GCC yang dikompilasi .a libs?

  3. Bagaimana cara membangun Visual Studio Solution di Linux?

  1. Cara dual-boot Linux dan Windows

  2. Cara mereset kata sandi Windows dengan Linux

  3. Cara Compile C, C++, Dan Java Menggunakan Terminal Di Linux