Errore LNK1223 su build ARM
-
22-09-2019 - |
Domanda
Progetto Visual C ++ 3 incorporato, che si sta costruendo per PocketPC 2000. Sulla build del braccio, il linker lancia il seguente errore:
Errore fatale LNK1223: file non valido o corrotto: il file contiene contributi PData non validi
Su SH3, il progetto compila, i collegamenti e le opere. Il progetto funziona anche se costruito per ARM su Visual C ++ 2005, ma devo testare le build specificamente da EVC3.
Qualche idea, per favore? Qual è un contributo di pdata e come faccio a influire (o disabilito)? È qualcosa a che fare con la gestione delle eccezioni; Ho provato a disabilitare SEH specificando /EHsc
, senza alcun effetto.
Soluzione
Molto strano. Ho provato a commentare tutto nel file. L'errore è andato via quando ho commentato una funzione che era esterna "C" vuota __declspec (nuda) senza corpo (corpo #ifdef'fed via). Ho funzioni simili nel progetto, ma non hanno lanciato errori come questo. Forse un bug del compilatore ...
Altri suggerimenti
Non ho idea da parte mia, ma il Mind Google ha trascinato questo thread che potrebbe darti un indizio su come risolvere/lavorare il problema ... forse:
Dopo aver esaminato più da vicino l'errore, ho finalmente capito che questo è un effetto collaterale del mio dirottamento di
SC_SetDaylightTime()
Nel kernel con la mia versione. Apparentemente, qualcosa che sto facendo nel mio codice c'è che il compilatore generasse voci PDATA che sono sbagliate in qualche modo. Un posizionato strategicamente#ifndef
ha lavorato intorno a esso.