Hello, I set up a fresh new set of directories for edk2 / edk2-libc to build my UEFI application using the latest VS2022 instead of VS2008 (had tried VS2019 about six months to a year ago and had the same issue as I'm having with VS2022).
Background: There is a master library (millions of lines of code) that I build for UEFI that has a lot of support routines. That library is used not only for UEFI, but DOS, Windows (x86,x64, ARM64), Linux (x86,x64), Windows Drivers (x86, x64, ARM64), Linux Drivers (x86, x64). Where needed, the source is wrapped in #if defined() for the different environments. Yes, C++ is used, but the new/delete are just calling malloc/free and don't use exceptions. The problem I have when linking this library using VS2022 (and VS2019) I get a bunch of "unresolved external symbol" errors for things that are not used in the UEFI application. /OPT:REF is enabled on the build. I rebuilt the master library using VS2022 before building the app. There are a lot more, but a small sample is shown below. Now, if I simply rebuild the library using VS2008 then put back the old EDK2 BuildTools/Conf directory that I was using for VS2008, I can build and everything builds and links correctly without this issue. I'm not sure which VS version started this, I stuck with VS2008 since it just worked. Now I want to build using NX so need to upgrade VS2008 to a newer version (I guess I could try the first version that supported NX). But, anyway, does anyone out there have any idea what may be going on here (is it the new build tools in edk2?) and a way around it? It's annoying. acme.lib(LzmaDec.obj) : error LNK2001: unresolved external symbol LzmaDec_DecodeReal_3 acme.lib(MSGBOX.obj) : error LNK2001: unresolved external symbol "char const * const tHKOK" (?tHKOK@@3QBDB) acme.lib(INPUTBOX.obj) : error LNK2001: unresolved external symbol "char const * const tHKOK" (?tHKOK@@3QBDB) acme.lib(FILEDLG.obj) : error LNK2001: unresolved external symbol "char const * const tHKOK" (?tHKOK@@3QBDB) acme.lib(MSGBOX.obj) : error LNK2001: unresolved external symbol "char const * const tHKCancel" (?tHKCancel@@3QBDB) acme.lib(INPUTBOX.obj) : error LNK2001: unresolved external symbol "char const * const tHKCancel" (?tHKCancel@@3QBDB) -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#121755): https://edk2.groups.io/g/devel/message/121755 Mute This Topic: https://groups.io/mt/117257031/21656 Group Owner: [email protected] Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
