Bagikan melalui


CL Memanggil Linker

CL secara otomatis memanggil linker setelah mengkompilasi kecuali opsi /c digunakan. CL meneruskan ke linker nama file .obj yang dibuat selama kompilasi dan nama file lain yang ditentukan pada baris perintah. Linker menggunakan opsi yang tercantum dalam variabel lingkungan LINK. Anda dapat menggunakan opsi /link untuk menentukan opsi linker pada baris perintah CL. Opsi yang mengikuti opsi /link mengambil alih opsi tersebut dalam variabel lingkungan LINK. Opsi dalam tabel berikut menekan penautan.

Opsi Deskripsi
c Mengkompilasi tanpa menautkan
/E, /EP, /P Pra-proses tanpa mengkompilasi atau menautkan
/Zg Membuat prototipe fungsi
/Zs Memeriksa sintaksis

Untuk detail lebih lanjut tentang penautan, lihat Opsi MSVC Linker.

Contoh

Asumsikan bahwa Anda mengkompilasi tiga file sumber C: MAIN.c, MOD1.c, dan MOD2.c. Setiap file menyertakan panggilan ke fungsi yang ditentukan dalam file yang berbeda:

  • MAIN.c memanggil fungsi func1 di MOD1.c dan fungsi func2 di MOD2.c.

  • MOD1.c memanggil fungsi printf_s pustaka standar dan scanf_s.

  • MOD2.c memanggil fungsi grafis bernama myline dan mycircle, yang didefinisikan dalam pustaka bernama MYGRAPH.lib.

Untuk membangun program ini, kompilasi dengan baris perintah berikut:

CL MAIN.c MOD1.C MOD2.C MYGRAPH.lib

CL pertama-tama mengkompilasi file sumber C dan membuat file objek MAIN.obj, MOD1.obj, dan MOD2.obj. Pengkompilasi menempatkan nama pustaka standar di setiap file .obj. Untuk detail selengkapnya, lihat Menggunakan Pustaka Run-Time.

CL meneruskan nama file .obj, bersama dengan nama MYGRAPH.lib, ke linker. Linker menyelesaikan referensi eksternal sebagai berikut:

  1. Dalam MAIN.obj, referensi ke func1 diselesaikan menggunakan definisi dalam MOD1.obj; referensi untuk func2 diselesaikan menggunakan definisi dalam MOD2.obj.

  2. Dalam MOD1.obj, referensi ke printf_s dan scanf_s diselesaikan menggunakan definisi di pustaka yang ditemukan linker bernama dalam MOD1.obj.

  3. Dalam MOD2.obj, referensi ke myline dan mycircle diselesaikan menggunakan definisi di MYGRAPH.lib.

Lihat juga

Opsi Pengkompilasi MSVC
Mengatur Opsi Pengkompilasi