Pertanyaan Apa itu perintah untuk mengkompilasi dan menjalankan program C ++?


Saya baru mengenal Linux. Saya menggunakan Ubuntu 11.04 dan tidak tahu cara mengkompilasi dan menjalankan program C ++ di dalamnya. Saya harus tahu perintahnya Menyusun dan Menjalankan program C ++ di Linux.


68
2017-09-14 15:44


asal


Apakah ada jawaban yang membantu Anda? - lindhe


Jawaban:


Untuk mengkompilasi kode c ++ Anda, gunakan:

g++ foo.c 

foo.c dalam contoh adalah nama program yang akan dikompilasi.

Ini akan menghasilkan dieksekusi di direktori yang sama disebut a.out yang dapat Anda jalankan dengan mengetik ini di terminal Anda:

./a.out

g ++ seharusnya sudah ada di $ PATH Anda, jadi Anda tidak perlu menelepon /usr/bin/g++ secara eksplisit, tetapi Anda dapat menggunakan yang terakhir dalam hal apa pun.

foo.c harus berada di direktori yang sama dengan yang Anda jalankan dari perintah. Jika ada keraguan, Anda dapat memastikan Anda berada di direktori yang sama dengan mengetik ls foo.c atau head foo.c (jika Anda perlu memverifikasi Anda bekerja dengan benar foo.)

Seperti dicatat oleh @ con-f-use, compiler biasanya akan membuat file ini dapat dieksekusi, tetapi jika tidak, Anda dapat melakukan ini sendiri (jadi perintah untuk mengeksekusi, ./a.out atau yang setara, akan berfungsi):

chmod +x ./a.out

Untuk menentukan nama file keluaran yang dikompilasi, sehingga tidak diberi nama a.out, use-o` dengan perintah g ++ Anda.
 Misalnya.,

g++ -o output foo.c 

Ini akan dikompilasi foo.c ke file biner bernama output, dan Anda bisa mengetik ./output untuk menjalankan kode yang dikompilasi.


81
2017-09-14 15:48



Compiler biasanya membuat biner (a.out dalam hal ini) dapat dieksekusi. Jika tidak, Anda dapat melakukannya dengan mengetik: chmod +x a.out. Ketika program Anda dikompilasi dieksekusi, Anda dapat menjalankannya mengetik ./a.out - titik dan indikasi garis miring, bahwa Anda ingin mengeksekusinya. - con-f-use
@Rajeshkumar, apakah Anda menemukan salah satu jawaban ini sesuai dengan keinginan Anda? Jika demikian, dapatkah Anda menandai salah satunya sebagai jawaban yang diterima (dengan memilih tanda di bawah panah suara atas / bawah) sehingga kami dapat menarik garis di bawah masalah ini. - Chris Wilson
Apakah ada perbedaan antara g ++ foo.c -o output dan g ++ -o output foo.c? - Goldname


Saya membuat dua asumsi di sini:

  1. Anda sudah memiliki file / program sumber C ++ yang siap dibuat
  2. Anda telah menyiapkan sistem build di komputer Anda

Cara termudah untuk mengkompilasi program C ++ di Ubuntu, atau distro Linux lainnya dalam hal ini, adalah mengetik

g++ main.cpp -o main
  • g ++ adalah permintaan komponen C ++ GCC, compiler defacto untuk C / C ++ dan seluruh host bahasa lain pada platform Linux. Saat ini satu-satunya compiler yang mampu mengkompilasi kernel Linux.
  • main.cpp adalah file sumber c ++ yang ingin Anda kompilasi.
  • -jadi utama menentukan nama file output yang ingin Anda buat setelah sumber dikompilasi. File sumber target dan file output target dapat dibalik jika Anda mau, jadi g++ -o main main.cpp sama-sama valid.
  • Untuk kemudian menjalankan program itu, Anda perlu melakukannya ./main di terminal.

Perintah di atas menganggap Anda sudah berada di lokasi file sumber, tetapi file sumber dan file output target juga dapat ditetapkan sebagai direktori. Sebagai contoh

g++ ~/Desktop/main.cpp -o ~/Projects/main

akan mengkompilasi file sumber C ++ yang terletak di desktop Anda dan menempatkan biner yang dapat dieksekusi dalam a Projects folder di direktori home Anda. Untuk menjalankan ini, jalankan executable ./Projects/main.


15
2017-09-15 08:51





Ini adalah bagaimana saya suka mengkompilasi dengan g ++.

$g++ -W -Wall -pedantic -o programName -p sourceFile.cpp

-W: Print extra warning messages for some problems.
-Wall: Enable all the warnings about questionable code
-pedantic: Show all the warnings demanded by strict ISO compliance
-o programName: place the executable output in programName sourceFile.cpp: the 
name of our source code file

4
2017-09-03 06:03



-p: Generate extra code to write profile information suitable for the analysis program prof. - Hans
Saya suka jawaban Anda. Ini membawa saran tambahan. Tetapi Anda harus benar-benar mengulanginya agar dapat diterima secara umum. - Vlastimil


g++ filename.cpp 

misalnya:

g++ One.cpp

Ini akan menghasilkan file output bernama (mis.):

a.out

Jika Anda membuat program lain dan mengkompilasi itu (misalnya):

g++ Two.cpp

Ini juga akan menghasilkan file output bernama (misalnya):

a.out

Ini berarti Anda bisa mendapatkan hasil dari hanya program yang terakhir dikompilasi jika Anda menjalankannya. Untuk menghindari penggunaan ini (mis.)

g++ One.cpp -o One 

sekarang, file output Anda akan:

One

Sekarang, Anda dapat mengeksekusi file dengan nama yang ditentukan oleh Anda.


2
2018-06-22 18:15



Saya tidak dapat melihat bagaimana jawaban ini dapat meningkatkan jawaban yang diterima saat ini. - Vlastimil


Anda memerlukan g ++, karena gcc tidak dapat meng-compile file cpp dengan mudah.
Anda juga perlu belajar vim atau emacs untuk menulis kode C.
Coba saja ini di terminal Anda:

Ketik program uji dan simpan:

$vim hello.cc

Menyusun hello.cc dengan g ++:

$g++ hello.cc -o hello

Eksekusi:

$./hello

Di sini ./ berarti file exe berada di bawah dir saat ini.


1
2017-09-14 16:33



gcc adalah compiler GNU untuk compiler C dan C ++. Dan OP tidak perlu tahu vim atau emacs untuk menulis kode C, ada banyak editor teks lain dan IDE yang beredar. - Nitin Venkatesh
Meskipun saya suka vim, jika seseorang sudah berjuang dengan mencari tahu bagaimana menjalankan masalah, menyarankan vim tidak terlalu berguna. - johanvdw
Saya pribadi tidak suka vi, Tapi itu tidak masalah. Anda harus menyimpang dari menyarankan editor tertentu, semua orang menggunakan / nya sendiri pula. - Vlastimil


g++ adalah front-end untuk gcc(GNU Compiler Collection) dengan beberapa makro c ++ yang telah ditentukan dan opsi / bendera default yang berbeda.

kompilasi kode c ++ dengan gcc berguna saat g++ tidak tersedia untuk sejumlah alasan, sebenarnya itu hanya masalah menghubungkan ke perpustakaan c ++ -lstdc++ dan memberi tahu gcc untuk memperlakukan input sebagai kode c ++ (baik dengan menggunakan a .C ekstensi, atau memaksa bahasa dengan -x)
sufiks nama file ++ yang valid lainnya: .cc , .cp , .cxx , .cpp , .CPP , .c++ 

contoh:

gcc cpp_code.C -lstdc++     ekstensi huruf besar (.C) penting bagi gcc untuk mengetahui bahwa itu adalah file c ++.

atau secara eksplisit menentukan bahasa input:

gcc -x c++ cpp_code.txt -lstdc++  ekstensi dapat berupa apa saja, atau bahkan tidak sama sekali

secara default hasilnya (setelah kompilasi yang sukses) adalah sebuah a.out file yang dapat dijalankan dengan ./a.out


0
2017-07-16 05:45



Jawaban Anda lebih informatif - Billal Begueradj