Bagikan melalui


LNK4078 Peringatan Alat Linker

beberapa bagian 'nama bagian' ditemukan dengan atribut yang berbeda

LINK menemukan dua bagian atau lebih yang memiliki nama yang sama tetapi atribut yang berbeda.

Peringatan ini dapat disebabkan oleh pustaka impor atau file ekspor yang dibuat oleh versi LINK atau LIB sebelumnya.

Buat ulang file dan tautan ulang.

Contoh

LNK4078 juga dapat disebabkan oleh perubahan yang melanggar: bagian yang dinamai oleh init_seg pada x86 adalah baca/tulis, sekarang dibaca saja.

Sampel berikut menghasilkan LNK4078.

// LNK4078.cpp
// compile with: /W1
// LNK4078 expected
#include <stdio.h>
#pragma warning(disable : 4075)
typedef void (__cdecl *PF)(void);
int cxpf = 0;   // number of destructors to call
PF pfx[200];   // pointers to destructors.

struct A { A() {} };

int myexit (PF pf) { return 0; }

#pragma section(".mine$a", read, write)
// try the following line instead
// #pragma section(".mine$a", read)
__declspec(allocate(".mine$a")) int ii = 1;

#pragma section(".mine$z", read, write)
// try the following line instead
// #pragma section(".mine$z", read)
__declspec(allocate(".mine$z")) int i = 1;

#pragma data_seg()
#pragma init_seg(".mine$m", myexit)
A bbbb;
A cccc;
int main() {}