Bagikan melalui


LNK1561 Kesalahan Alat Linker

titik masuk harus didefinisikan

Linker tidak menemukan titik masuk, fungsi awal yang akan dipanggil dalam executable Anda. Secara default, linker mencari main atau wmain fungsi untuk aplikasi konsol, WinMain atau wWinMain fungsi untuk aplikasi Windows, atau DllMain untuk DLL yang memerlukan inisialisasi. Anda dapat menentukan fungsi lain dengan menggunakan opsi /ENTRY linker.

Kesalahan ini dapat memiliki beberapa penyebab:

  • Anda mungkin belum menyertakan file yang menentukan titik masuk Anda dalam daftar file yang akan ditautkan. Verifikasi bahwa file yang berisi fungsi titik masuk ditautkan ke dalam aplikasi Anda.
  • Anda mungkin telah menentukan titik masuk menggunakan tanda tangan fungsi yang salah; misalnya, Anda mungkin salah eja atau menggunakan kasus yang salah untuk nama fungsi, atau menentukan jenis pengembalian atau jenis parameter salah.
  • Anda mungkin belum menentukan opsi /DLL saat membuat DLL.
  • Anda mungkin telah menentukan nama fungsi titik masuk dengan tidak benar ketika Anda menggunakan opsi /ENTRY linker.
  • Jika Anda menggunakan alat LIB untuk membangun DLL, Anda mungkin telah menentukan file .def. Jika demikian, hapus file .def dari build.

Saat membuat aplikasi, linker mencari fungsi titik masuk untuk memanggil untuk memulai kode Anda. Ini adalah fungsi yang dipanggil setelah aplikasi dimuat dan runtime diinisialisasi. Anda harus menyediakan fungsi titik masuk untuk aplikasi, atau aplikasi Anda tidak dapat berjalan. Titik masuk bersifat opsional untuk DLL. Secara default, linker mencari fungsi titik masuk yang memiliki salah satu dari beberapa nama dan tanda tangan tertentu, seperti int main(int, char**). Anda dapat menentukan nama fungsi lain sebagai titik entri dengan menggunakan opsi linker /ENTRY.

Contoh

Sampel berikut menghasilkan LNK1561:

// LNK1561.cpp
// LNK1561 expected
int i;
// add a main function to resolve this error