I’m integrating a third-party library, that uses static libsqlite3.lib.
I’m trying to integrate it into my plugin using:
PublicAdditionalLibraries.Add
And it works fine in the editor.
But when I’m trying to package a Shipping build, I’m getting a bunch of linker duplicate symbol errors for sqlite functions.
- The conflicting module is SQLiteCore (it has it’s own integration of sqlite3).
- SQLiteCore plugin can’t be disabled (I need it enabled).
- After some attempts to make use of the embedded (into SQLiteCore) sqlite3, I gave up (the set of defines there appeared to be incompatible with what I need).
I tried to play with building the custom version of the SQLiteCore module with the needed options and copying it to the installed UE folder. But probably I’m doing something wrong, and hence getting a weird error.
[2025.01.21-20.34.17:650][530]UATHelper: Packaging (Windows): Module.SQLiteCore.cpp.obj : error LNK2011: precompiled object not linked in; image may not run
[2025.01.21-20.34.17:650][530]UATHelper: Packaging (Windows): Hint on symbols that are defined and could potentially match:
[2025.01.21-20.34.17:650][530]UATHelper: Packaging (Windows): __@@_PchSym_@00@UkilqvxghUwzixbRvwvmRkilqvxgUhixUrmgvinvwrzgvUyfrowUdrmGEUcGEUvwvmxznkfhhrnUhsrkkrmtUvmtrmvUhszivwkxsOvmtrmvOvcxvkgrlmhOxkkCAOsOlyq@4B2008FD98C1DD4
[2025.01.21-20.34.17:650][530]UATHelper: Packaging (Windows): __@@_PchSym_@00@UkilqvxghUwzixbRvwvmRkilqvxgUhixUrmgvinvwrzgvUyfrowUdrmGEUcGEUvwvmxznkfhhrnUhsrkkrmtUvmtrmvUhszivwkxsOvmtrmvOxkkCAOsOlyq@4B2008FD98C1DD4
[2025.01.21-20.34.17:651][530]UATHelper: Packaging (Windows): __@@_PchSym_@00@UwveUtucUlfgkfgUwfnkGEUwDwvcgUrtucPvcgPoryOwriUivovzhvUhgwzucPoryOlyq@4B2008FD98C1DD4
[2025.01.21-20.34.17:651][530]UATHelper: Packaging (Windows): __@@_PchSym_@00@UyfrowUQQfvFUhbmxUvmtrmvUkoftrmhUifmgrnvUivhlmzmxvzfwrlUrmgvinvwrzgvUyfrowUdrmGEUcGEUfmivzotznvUhsrkkrmtUivhlmzmxvzfwrlUkxsOivhlmzmxvzfwrlOsOlyq@4B2008FD98C1DD4
[2025.01.21-20.34.17:651][530]UATHelper: Packaging (Windows): __@@_PchSym_@00@UyfrowUQQfvFUhbmxUvmtrmvUrmgvinvwrzgvUyfrowUdrmGEUcGEUfmivzotznvUhsrkkrmtUhozgvUhszivwkxsOhozgvOxkkCAOsOlyq@4B2008FD98C1DD4
[2025.01.21-20.34.17:651][530]UATHelper: Packaging (Windows): __@@_PchSym_@00@UyfrowUQQfvFUhbmxUvmtrmvUrmgvinvwrzgvUyfrowUdrmGEUcGEUfmivzotznvUhsrkkrmtUvmtrmvUhszivwkxsOvmtrmvOiggrOvcxvkgrlmhOxkkCAOsOlyq@4B2008FD98C1DD4
[2025.01.21-20.34.17:651][530]UATHelper: Packaging (Windows): __@@_PchSym_@00@UyfrowUQQfvFUhbmxUvmtrmvUrmgvinvwrzgvUyfrowUdrmGEUcGEUfmivzotznvUhsrkkrmtUvmtrmvUhszivwkxsOvmtrmvOvcxvkgrlmhOxkkCAOsOlyq@4B2008FD98C1DD4
[2025.01.21-20.34.17:651][530]UATHelper: Packaging (Windows): __@@_PchSym_@00@UyfrowUQQfvFUhbmxUvmtrmvUrmgvinvwrzgvUyfrowUdrmGEUcGEUfmivzotznvUhsrkkrmtUvmtrmvUhszivwkxsOvmtrmvOxkkCAOsOlyq@4B2008FD98C1DD4
[2025.01.21-20.34.17:651][530]UATHelper: Packaging (Windows): __@@_PchSym_@00@UyfrowUQQfvFUhbmxUvmtrmvUrmgvinvwrzgvUyfrowUdrmGEUcGEUfmivzotznvUhsrkkrmtUvmtrmvUkxsOvmtrmvOsOlyq@4B2008FD98C1DD4
[2025.01.21-20.34.17:651][530]UATHelper: Packaging (Windows): __@@_PchSym_@00@UyfrowUQQfvFUhbmxUvmtrmvUrmgvinvwrzgvUyfrowUdrmGEUcGEUfmivzotznvUhsrkkrmtUxlivUhszivwkxsOxlivOiggrOvcxvkgrlmhOxkkCAOsOlyq@4B2008FD98C1DD4
[2025.01.21-20.34.17:651][530]UATHelper: Packaging (Windows): __@@_PchSym_@00@UyfrowUQQfvFUhbmxUvmtrmvUrmgvinvwrzgvUyfrowUdrmGEUcGEUfmivzotznvUhsrkkrmtUxlivUhszivwkxsOxlivOvcxvkgrlmhOxkkBHOsOlyq@4B2008FD98C1DD4
[2025.01.21-20.34.17:651][530]UATHelper: Packaging (Windows): __@@_PchSym_@00@UyfrowUQQfvFUhbmxUvmtrmvUrmgvinvwrzgvUyfrowUdrmGEUcGEUfmivzotznvUhsrkkrmtUxlivUhszivwkxsOxlivOvcxvkgrlmhOxkkCAOsOlyq@4B2008FD98C1DD4
[2025.01.21-20.34.17:651][530]UATHelper: Packaging (Windows): __@@_PchSym_@00@UyfrowUQQfvFUhbmxUvmtrmvUrmgvinvwrzgvUyfrowUdrmGEUcGEUfmivzotznvUhsrkkrmtUxlivUhszivwkxsOxlivOxkkCAOsOlyq@4B2008FD98C1DD4
[2025.01.21-20.34.17:651][530]UATHelper: Packaging (Windows): __@@_PchSym_@00@UyfrowUQQfvFUhbmxUvmtrmvUrmgvinvwrzgvUyfrowUdrmGEUcGEUfmivzotznvUhsrkkrmtUxlivUkxsOxlivOsOlyq@4B2008FD98C1DD4
[2025.01.21-20.34.17:651][530]UATHelper: Packaging (Windows): __@@_PchSym_@00@UyfrowUQQfvFUhbmxUvmtrmvUrmgvinvwrzgvUyfrowUdrmGEUcGEUfmivzotznvUhsrkkrmtUxlivflyqvxgUhszivwkxsOxlivflyqvxgOxkkCAOsOlyq@4B2008FD98C1DD4
[2025.01.21-20.34.17:651][530]UATHelper: Packaging (Windows): __@@_PchSym_@00@UyfrowUQQfvFUhbmxUvmtrmvUrmgvinvwrzgvUyfrowUdrmGEUcGEUfmivzotznvUhsrkkrmtUxlivflyqvxgUkxsOxlivflyqvxgOsOlyq@4B2008FD98C1DD4
[2025.01.21-20.34.17:651][530]UATHelper: Packaging (Windows): __@@_PchSym_@00@UzUPdlipUBUhUrmgvinvwrzgvUexHoryhUhsrkUzgonuxUhixUzgoUzgohUzgohOmzgrevkilqUlyqiPiUznwGEUhgwzucOlyq@4B2008FD98C1DD4
The error seem to be related to the precompiled headers, but disabling the use of them in the SQLiteCore.Build.cs doesn’t seem to fix it.
So what’s the best way to integrate a separate version of the conflicting (with the engine embedded plugins) third-party static lib (in my case sqlite3)?