[Proposal] add xmllite.lib to Linker Input #855

Closed
opened 2026-01-29 16:55:25 +00:00 by claunia · 5 comments
Owner

Originally created by @syehoonkim on GitHub (Dec 19, 2025).

Dear,
When I try to build by MSVC, it complains that it cannot find the symbol related to xmllite.lib, so I manually added the lib to Linker Input.
How about including it?

Originally created by @syehoonkim on GitHub (Dec 19, 2025). Dear, When I try to build by MSVC, it complains that it cannot find the symbol related to xmllite.lib, so I manually added the lib to Linker Input. How about including it?
Author
Owner

@cfsmp3 commented on GitHub (Dec 19, 2025):

Thanks for the report! Our CI builds successfully on Windows without xmllite.lib, so we need more information to understand your setup:

  1. What GPAC version are you using? Our CI uses GPAC 2.4.0 installed via chocolatey (choco install gpac --version 2.4.0). Are you using a different version or installation method?

  2. What are the exact linker errors? Could you paste the specific "unresolved external symbol" errors you're seeing? This will help us confirm which library is actually needed.

  3. Are you using vcpkg for dependencies? The build expects dependencies installed via vcpkg with triplet x64-windows-static.

  4. Which build configuration? Debug-Full or Release-Full?

The xmllite.lib is a Windows system library, so it should be available if you have the Windows SDK installed. But we want to understand why it's needed in your case when CI builds fine without it.

@cfsmp3 commented on GitHub (Dec 19, 2025): Thanks for the report! Our CI builds successfully on Windows without `xmllite.lib`, so we need more information to understand your setup: 1. **What GPAC version are you using?** Our CI uses GPAC 2.4.0 installed via chocolatey (`choco install gpac --version 2.4.0`). Are you using a different version or installation method? 2. **What are the exact linker errors?** Could you paste the specific "unresolved external symbol" errors you're seeing? This will help us confirm which library is actually needed. 3. **Are you using vcpkg for dependencies?** The build expects dependencies installed via vcpkg with triplet `x64-windows-static`. 4. **Which build configuration?** Debug-Full or Release-Full? The `xmllite.lib` is a Windows system library, so it should be available if you have the Windows SDK installed. But we want to understand why it's needed in your case when CI builds fine without it.
Author
Owner

@syehoonkim commented on GitHub (Dec 22, 2025):

Dear,
Below is my environment. I hope it helps.

  1. To make the situation clear, I just have installed with gpac installer from https://gpac.io The version is 2.5-DEV and same thing happens.
  2. Below is the link errors.
unresolved external symbol CreateXmlReader referenced in function xmllite_read_toc

from archive.lib(archive_read_support_format_xar.c.obj)
Image
3. I am using vcpkg with the latest, but I didn't designated the triplet as x64-windows-static, but I just ran build.
4. Both configurations make the same situation.
5. I have Windows 10/11 SDK both.
6. Below is my Linker Inputs.

ccx_rust.lib
UserEnv.lib
Crypt32.lib
WS2_32.Lib
ntdll.lib
Bcrypt.lib
Mfplat.lib
Mfuuid.lib
Secur32.lib
Strmiids.lib
Ole32.lib
User32.lib
libcrypto.lib
libcurl.lib
avcodec.lib
avformat.lib
avutil.lib
avfilter.lib
swscale.lib
swresample.lib
leptonica-1.85.0.lib
tesseract55.lib
gif.lib
archive.lib
avdevice.lib
bz2.lib
jpeg.lib
libpng16.lib
libsharpyuv.lib
libssl.lib
libwebp.lib
libwebpdecoder.lib
libwebpdemux.lib
libwebpmux.lib
libxml2.lib
lz4.lib
lzma.lib
openjp2.lib
tiff.lib
turbojpeg.lib
zlib.lib
zstd.lib
libgpac.lib

I suspicious that it is related to my environment, but not sure.
If you have any theories, please let me know.
Thank you.

@syehoonkim commented on GitHub (Dec 22, 2025): Dear, Below is my environment. I hope it helps. 1. To make the situation clear, I just have installed with gpac installer from https://gpac.io The version is 2.5-DEV and same thing happens. 2. Below is the link errors. ``` unresolved external symbol CreateXmlReader referenced in function xmllite_read_toc ``` from `archive.lib(archive_read_support_format_xar.c.obj)` <img width="3087" height="78" alt="Image" src="https://github.com/user-attachments/assets/10f43253-035c-4262-8cf8-9b41294675e3" /> 3. I am using vcpkg with the latest, but I didn't designated the triplet as `x64-windows-static`, but I just ran build. 4. Both configurations make the same situation. 5. I have Windows 10/11 SDK both. 6. Below is my Linker Inputs. ``` ccx_rust.lib UserEnv.lib Crypt32.lib WS2_32.Lib ntdll.lib Bcrypt.lib Mfplat.lib Mfuuid.lib Secur32.lib Strmiids.lib Ole32.lib User32.lib libcrypto.lib libcurl.lib avcodec.lib avformat.lib avutil.lib avfilter.lib swscale.lib swresample.lib leptonica-1.85.0.lib tesseract55.lib gif.lib archive.lib avdevice.lib bz2.lib jpeg.lib libpng16.lib libsharpyuv.lib libssl.lib libwebp.lib libwebpdecoder.lib libwebpdemux.lib libwebpmux.lib libxml2.lib lz4.lib lzma.lib openjp2.lib tiff.lib turbojpeg.lib zlib.lib zstd.lib libgpac.lib ``` I suspicious that it is related to my environment, but not sure. If you have any theories, please let me know. Thank you.
Author
Owner

@cfsmp3 commented on GitHub (Dec 22, 2025):

I am using vcpkg with the latest, but I didn't designated the triplet as x64-windows-static, but I just ran build.

Set VCPKG_DEFAULT_TRIPLET=x64-windows-static environment variable before running vcpkg install, or explicitly pass --triplet x64-windows-static to vcpkg, that should work.

@cfsmp3 commented on GitHub (Dec 22, 2025): > I am using vcpkg with the latest, but I didn't designated the triplet as `x64-windows-static`, but I just ran build. Set VCPKG_DEFAULT_TRIPLET=x64-windows-static environment variable before running vcpkg install, or explicitly pass --triplet x64-windows-static to vcpkg, that should work.
Author
Owner

@cfsmp3 commented on GitHub (Dec 22, 2025):

Thanks for the detailed information! I found the root cause of your issue.

The triplet is already configured

Since PR #1612, the project file (windows/ccextractor.vcxproj) already includes the correct triplet setting:

<PropertyGroup Label="Vcpkg">
  <VcpkgEnableManifest>true</VcpkgEnableManifest>
  <VcpkgTriplet>x64-windows-static</VcpkgTriplet>
  <VcpkgEnabled>true</VcpkgEnabled>
</PropertyGroup>

So you shouldn't need to set any environment variables or pass any arguments manually.

Why you're seeing the error

The issue is likely one of these:

  1. Old checkout: You may have cloned the repo before PR #1612 was merged. Run git pull to get the latest .vcxproj file.

  2. Pre-installed vcpkg packages: If you ran vcpkg install manually from the command line before building in Visual Studio, those packages were installed with the default triplet (dynamic), not x64-windows-static. MSBuild then finds and uses those incorrectly-built packages.

How to fix

  1. git pull to ensure you have the latest project file
  2. Delete any pre-installed vcpkg packages:
    • Remove the installed folder in your vcpkg root, or
    • Remove just the CCExtractor-related packages
  3. Open the solution in Visual Studio and build - MSBuild will install the dependencies with the correct x64-windows-static triplet automatically

The key point: let Visual Studio/MSBuild handle the vcpkg installation rather than running vcpkg install manually. The project file already specifies the correct triplet.

@cfsmp3 commented on GitHub (Dec 22, 2025): Thanks for the detailed information! I found the root cause of your issue. ## The triplet is already configured Since PR #1612, the project file (`windows/ccextractor.vcxproj`) already includes the correct triplet setting: ```xml <PropertyGroup Label="Vcpkg"> <VcpkgEnableManifest>true</VcpkgEnableManifest> <VcpkgTriplet>x64-windows-static</VcpkgTriplet> <VcpkgEnabled>true</VcpkgEnabled> </PropertyGroup> ``` So you shouldn't need to set any environment variables or pass any arguments manually. ## Why you're seeing the error The issue is likely one of these: 1. **Old checkout**: You may have cloned the repo before PR #1612 was merged. Run `git pull` to get the latest `.vcxproj` file. 2. **Pre-installed vcpkg packages**: If you ran `vcpkg install` manually from the command line before building in Visual Studio, those packages were installed with the default triplet (dynamic), not `x64-windows-static`. MSBuild then finds and uses those incorrectly-built packages. ## How to fix 1. `git pull` to ensure you have the latest project file 2. Delete any pre-installed vcpkg packages: - Remove the `installed` folder in your vcpkg root, or - Remove just the CCExtractor-related packages 3. Open the solution in Visual Studio and build - MSBuild will install the dependencies with the correct `x64-windows-static` triplet automatically The key point: let Visual Studio/MSBuild handle the vcpkg installation rather than running `vcpkg install` manually. The project file already specifies the correct triplet.
Author
Owner

@syehoonkim commented on GitHub (Dec 22, 2025):

Dear @cfsmp3 ,
Thank you for your guideline.
Finally, I found that this is related to my vcpkg integration, not your repository.
Sorry for bothering you.
Have a nice day!

@syehoonkim commented on GitHub (Dec 22, 2025): Dear @cfsmp3 , Thank you for your guideline. Finally, I found that this is related to my `vcpkg` integration, not your repository. Sorry for bothering you. Have a nice day!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/ccextractor#855