Apa perbedaan antara kode kompilasi dan kode yang dapat dieksekusi?

Jawaban:

159

Kompilasi adalah tindakan mengubah kode sumber menjadi kode objek.

Menautkan adalah tindakan menggabungkan kode objek dengan pustaka menjadi eksekusi mentah.

Membangun adalah urutan yang terdiri dari kompilasi dan penautan, dengan kemungkinan tugas lain seperti pembuatan pemasang.

Banyak kompiler menangani langkah penautan secara otomatis setelah mengompilasi kode sumber.

Ignacio Vazquez-Abrams
sumber
19

Dari wikipedia :

Di bidang perangkat lunak komputer, istilah membangun perangkat lunak mengacu pada proses mengubah file kode sumber menjadi artefak perangkat lunak mandiri yang dapat dijalankan di komputer, atau hasil dari melakukannya. Salah satu langkah terpenting dari membangun perangkat lunak adalah proses kompilasi di mana file kode sumber diubah menjadi kode yang dapat dieksekusi.

Sementara untuk program sederhana , prosesnya terdiri dari satu file yang sedang dikompilasi, untuk perangkat lunak yang kompleks, kode sumber dapat terdiri dari banyak file dan dapat digabungkan dengan cara yang berbeda untuk menghasilkan banyak versi yang berbeda.

codaddict
sumber
9

Build dapat dilihat sebagai skrip, yang terdiri dari banyak langkah - langkah utama adalah mengompilasi kode. Orang lain bisa

  • menjalankan tes
  • pelaporan (mis. cakupan)
  • analisis statis
  • langkah sebelum dan sesudah pembuatan
  • menjalankan alat khusus pada file tertentu
  • membuat instal
  • memberi label dan menerapkan / menyalinnya ke repositori
Gishu
sumber
7

Mereka sering digunakan dengan arti yang sama. Namun, "build" juga dapat berarti proses kompilasi dan penautan keseluruhan aplikasi secara penuh (dalam kasus misalnya C dan C ++), atau bahkan lebih, termasuk, antara lain

  • pengemasan
  • pengujian otomatis (unit dan / atau integrasi)
  • generasi installer
  • instalasi / penyebaran
  • dokumentasi / pembuatan situs
  • pembuatan laporan (misalnya hasil tes, cakupan).

Ada sistem seperti Maven , yang menggeneralisasi ini dengan konsep daur hidup , yang terdiri dari beberapa tahap, menghasilkan artefak yang berbeda, kemungkinan menggunakan hasil dan artefak dari tahap sebelumnya.

Péter Török
sumber
5

Dari pengalaman saya, saya akan mengatakan bahwa "kompilasi" mengacu pada konversi satu atau beberapa file sumber yang dapat dibaca manusia menjadi kode byte (file objek di C) sementara "membangun" mendenominasi seluruh proses kompilasi, penautan, dan apa pun yang diperlukan selesai dari seluruh paket atau proyek.

chris
sumber
2

Kebanyakan orang mungkin akan menggunakan istilah tersebut secara bergantian. Anda bisa melihat satu nuansa: kompilasi hanyalah langkah di mana Anda melewatkan beberapa file sumber melalui kompilator (gcc, javac, apa saja).

Membangun dapat didengar sebagai proses yang lebih umum untuk memeriksa sumber, membuat folder target untuk artefak yang dikompilasi, memeriksa ketergantungan, memilih apa yang harus dikompilasi, menjalankan tes otomatis, membuat tar / zip / ditributions, mendorong ke ftp , dll ...

phtrivier.dll
sumber