Skip to content

Failed to parse output from vcpkg on windows #669

@clouds56

Description

@clouds56

Before reporting an issue please first check the
troubleshooting guide. If
the issue you're encountering is not solved thereby please state the following in your bugreport:

  1. Operating system: Windows 11 x64
  2. The way you installed OpenCV: vcpkg install opencv4
  3. OpenCV version 4.11.0
  4. rustc version (rustc --version) rustc 1.85.0 (4d91de4e4 2025-02-17)
  5. Attach the full output of the following command from your project directory:
[opencv 0.94.4] === Detected probe priority boost based on environment vars: pkg_config: false, cmake: false, vcpkg: true
[opencv 0.94.4] === Probing the OpenCV library in the following order: environment, vcpkg_cmake, vcpkg, pkg_config, cmake
[opencv 0.94.4] === Can't probe using: environment, continuing with other methods because: Some environment variables are missing
       Fresh jsonschema v0.30.0
[opencv 0.94.4] === Probing OpenCV library using vcpkg_cmake
[opencv 0.94.4] === Discovered vcpkg root: C:\opt\vcpkg
[opencv 0.94.4] === Probing OpenCV library using cmake with toolchain: C:\opt\vcpkg\scripts/buildsystems/vcpkg.cmake
[opencv 0.94.4] === cmake ninja probe command: "cmake" "-S" "C:\\Users\\clouds\\.cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\opencv-0.94.4\\cmake" "-DOCVRS_PACKAGE_NAME=OpenCV" "-DCMAKE_TOOLCHAIN_FILE=C:\\opt\\vcpkg\\scripts/buildsystems/vcpkg.cmake" "-DCMAKE_BUILD_TYPE=Debug" "-G" "Ninja"
[opencv 0.94.4] === Extracting build arguments from: C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_highgui4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_ml4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_objdetect4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_photo4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_stitching4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_video4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_videoio4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_imgcodecs4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_calib3d4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_dnn4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_features2d4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_flann4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_imgproc4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_core4d.lib  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib
[opencv 0.94.4]
[opencv 0.94.4] === Successfully probed using: vcpkg_cmake
[opencv 0.94.4] === OpenCV library configuration: Library {
[opencv 0.94.4]     include_paths: [
[opencv 0.94.4]         "C:/opt/vcpkg/installed/x64-windows/include/opencv4",
[opencv 0.94.4]     ],
[opencv 0.94.4]     version: Version {
[opencv 0.94.4]         major: 4,
[opencv 0.94.4]         minor: 11,
[opencv 0.94.4]         patch: 0,
[opencv 0.94.4]     },
[opencv 0.94.4]     enabled_features: [
[opencv 0.94.4]         "directx",
[opencv 0.94.4]         "directx_nv12",
[opencv 0.94.4]         "d3d11",
[opencv 0.94.4]         "d3d10",
[opencv 0.94.4]         "d3d9",
[opencv 0.94.4]         "jpeg",
[opencv 0.94.4]         "png",
[opencv 0.94.4]         "tiff",
[opencv 0.94.4]         "quirc",
[opencv 0.94.4]     ],
[opencv 0.94.4]     cargo_metadata: [
[opencv 0.94.4]         "cargo::rustc-link-search=C:",
[opencv 0.94.4]         "cargo::rustc-link-search=",
[opencv 0.94.4]         "cargo::rustc-link-lib=optvcpkginstalledx64-windowsdebuglibopencv_highgui4d",
[opencv 0.94.4]         "cargo::rustc-link-lib=optvcpkginstalledx64-windowsdebuglibopencv_ml4d",
[opencv 0.94.4]         "cargo::rustc-link-lib=optvcpkginstalledx64-windowsdebuglibopencv_objdetect4d",
[opencv 0.94.4]         "cargo::rustc-link-lib=optvcpkginstalledx64-windowsdebuglibopencv_photo4d",
[opencv 0.94.4]         "cargo::rustc-link-lib=optvcpkginstalledx64-windowsdebuglibopencv_stitching4d",
[opencv 0.94.4]         "cargo::rustc-link-lib=optvcpkginstalledx64-windowsdebuglibopencv_video4d",
[opencv 0.94.4]         "cargo::rustc-link-lib=optvcpkginstalledx64-windowsdebuglibopencv_videoio4d",
[opencv 0.94.4]         "cargo::rustc-link-lib=optvcpkginstalledx64-windowsdebuglibopencv_imgcodecs4d",
[opencv 0.94.4]         "cargo::rustc-link-lib=optvcpkginstalledx64-windowsdebuglibopencv_calib3d4d",
[opencv 0.94.4]         "cargo::rustc-link-lib=optvcpkginstalledx64-windowsdebuglibopencv_dnn4d",
[opencv 0.94.4]         "cargo::rustc-link-lib=optvcpkginstalledx64-windowsdebuglibopencv_features2d4d",
[opencv 0.94.4]         "cargo::rustc-link-lib=optvcpkginstalledx64-windowsdebuglibopencv_flann4d",
[opencv 0.94.4]         "cargo::rustc-link-lib=optvcpkginstalledx64-windowsdebuglibopencv_imgproc4d",
[opencv 0.94.4]         "cargo::rustc-link-lib=optvcpkginstalledx64-windowsdebuglibopencv_core4d",
[opencv 0.94.4]         "cargo::rustc-link-lib=kernel32",
[opencv 0.94.4]         "cargo::rustc-link-lib=user32",
[opencv 0.94.4]         "cargo::rustc-link-lib=gdi32",
[opencv 0.94.4]         "cargo::rustc-link-lib=winspool",
[opencv 0.94.4]         "cargo::rustc-link-lib=shell32",
[opencv 0.94.4]         "cargo::rustc-link-lib=ole32",
[opencv 0.94.4]         "cargo::rustc-link-lib=oleaut32",
[opencv 0.94.4]         "cargo::rustc-link-lib=uuid",
[opencv 0.94.4]         "cargo::rustc-link-lib=comdlg32",
[opencv 0.94.4]         "cargo::rustc-link-lib=advapi32",
[opencv 0.94.4]     ],
[opencv 0.94.4] }

I see it successfully found build arguments, but seems parse failed.
I think shlex cannot handle windows path correctly,

const LINE: &str = r#"C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_highgui4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_ml4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_objdetect4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_photo4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_stitching4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_video4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_videoio4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_imgcodecs4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_calib3d4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_dnn4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_features2d4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_flann4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_imgproc4d.lib  C:\opt\vcpkg\installed\x64-windows\debug\lib\opencv_core4d.lib  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib"#;
fn main() {
    shlex::Shlex::new(LINE).into_iter().for_each(
        |s| println!("{}", s),
    );
}

would output

C:optvcpkginstalledx64-windowsdebuglibopencv_highgui4d.lib
C:optvcpkginstalledx64-windowsdebuglibopencv_ml4d.lib
C:optvcpkginstalledx64-windowsdebuglibopencv_objdetect4d.lib
C:optvcpkginstalledx64-windowsdebuglibopencv_photo4d.lib
C:optvcpkginstalledx64-windowsdebuglibopencv_stitching4d.lib
C:optvcpkginstalledx64-windowsdebuglibopencv_video4d.lib
C:optvcpkginstalledx64-windowsdebuglibopencv_videoio4d.lib
C:optvcpkginstalledx64-windowsdebuglibopencv_imgcodecs4d.lib
C:optvcpkginstalledx64-windowsdebuglibopencv_calib3d4d.lib
C:optvcpkginstalledx64-windowsdebuglibopencv_dnn4d.lib
C:optvcpkginstalledx64-windowsdebuglibopencv_features2d4d.lib
C:optvcpkginstalledx64-windowsdebuglibopencv_flann4d.lib
C:optvcpkginstalledx64-windowsdebuglibopencv_imgproc4d.lib
C:optvcpkginstalledx64-windowsdebuglibopencv_core4d.lib
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
comdlg32.lib
advapi32.lib

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions