Skip to content

Windows build with dynamic linking to lib fails #45

Description

@skraus-dev

Bug description

Attempting to build a project which depends on libcec-sys or cec-rs yields error:

LINK : fatal error LNK1181: cannot open input file 'cec.lib'

Smoke tests apparently all fail...

Using 'smoke test' to find out if libcec is installed

Smoke testing with libcec major 6
smoke_abi6.c
build/smoke_abi6.c(6): warning C4013: '_Static_assert' undefined; assuming extern returning int
smoke_abi6.obj : error LNK2019: unresolved external symbol __imp_libcec_initialise referenced in function main
smoke_abi6.obj : error LNK2019: unresolved external symbol _Static_assert referenced in function main
C:\Users\dev\Desktop\cec_example\target\debug\build\libcec-sys-1ce880d6c0beb027\out\smoke_abi6_out.exe : fatal error LNK1120: 2 unresolved externals
smoke_abi6 -> fail: Ok(Output { status: ExitStatus(ExitStatus(2)), stdout: "smoke_abi6.c\r\nbuild/smoke_abi6.c(6): warning C4013: '_Static_assert' undefined; assuming extern returning int\r\nsmoke_abi6.obj : error LNK2019: unresolved external symbol __imp_libcec_initialise
 referenced in function main\r\nsmoke_abi6.obj : error LNK2019: unresolved external symbol _Static_assert referenced in function main\r\nC:\\Users\\dev\\Desktop\\cec_example\\target\\debug\\build\\libcec-sys-1ce880d6c0beb027\\out\\smoke_abi6_out.exe : fatal error LNK1120: 2 unresolved extern
als\r\n", stderr: "" })

Smoke testing with libcec major 5
smoke_abi5.c
build/smoke_abi5.c(6): warning C4013: '_Static_assert' undefined; assuming extern returning int
smoke_abi5.obj : error LNK2019: unresolved external symbol __imp_libcec_initialise referenced in function main
smoke_abi5.obj : error LNK2019: unresolved external symbol _Static_assert referenced in function main
C:\Users\dev\Desktop\cec_example\target\debug\build\libcec-sys-1ce880d6c0beb027\out\smoke_abi5_out.exe : fatal error LNK1120: 2 unresolved externals
smoke_abi5 -> fail: Ok(Output { status: ExitStatus(ExitStatus(2)), stdout: "smoke_abi5.c\r\nbuild/smoke_abi5.c(6): warning C4013: '_Static_assert' undefined; assuming extern returning int\r\nsmoke_abi5.obj : error LNK2019: unresolved external symbol __imp_libcec_initialise
 referenced in function main\r\nsmoke_abi5.obj : error LNK2019: unresolved external symbol _Static_assert referenced in function main\r\nC:\\Users\\dev\\Desktop\\cec_example\\target\\debug\\build\\libcec-sys-1ce880d6c0beb027\\out\\smoke_abi5_out.exe : fatal error LNK1120: 2 unresolved extern
als\r\n", stderr: "" })

Smoke testing with libcec major 4
smoke_abi4.c
build/smoke_abi4.c(6): warning C4013: '_Static_assert' undefined; assuming extern returning int
smoke_abi4.obj : error LNK2019: unresolved external symbol __imp_libcec_initialise referenced in function main
smoke_abi4.obj : error LNK2019: unresolved external symbol _Static_assert referenced in function main
C:\Users\dev\Desktop\cec_example\target\debug\build\libcec-sys-1ce880d6c0beb027\out\smoke_abi4_out.exe : fatal error LNK1120: 2 unresolved externals
smoke_abi4 -> fail: Ok(Output { status: ExitStatus(ExitStatus(2)), stdout: "smoke_abi4.c\r\nbuild/smoke_abi4.c(6): warning C4013: '_Static_assert' undefined; assuming extern returning int\r\nsmoke_abi4.obj : error LNK2019: unresolved external symbol __imp_libcec_initialise
 referenced in function main\r\nsmoke_abi4.obj : error LNK2019: unresolved external symbol _Static_assert referenced in function main\r\nC:\\Users\\dev\\Desktop\\cec_example\\target\\debug\\build\\libcec-sys-1ce880d6c0beb027\\out\\smoke_abi4_out.exe : fatal error LNK1120: 2 unresolved extern
als\r\n", stderr: "" })

Building vendored libcec

Will be happy to send a PR for more detailed README in that regard, if it can be narrowed down.

To Reproduce

Cargo.toml

[package]
name = "cec_example"
version = "0.1.0"
edition = "2021"

[dependencies]
libcec-sys = "4.0.3"

main.rs

use libcec_sys;

fn main() {
    println!("Hello, world!");
}
  • Install libcec-6.0.2.exe from https://github.com/Pulse-Eight/libcec/releases/tag/libcec-6.0.2
  • Environment variables:
    • PATH: Append C:\Program Files (x86)\Pulse-Eight\USB-CEC Adapter\x64\cec.dll
    • Note: Also tried with the directory path C:\Program Files (x86)\Pulse-Eight\USB-CEC Adapter\x64 as that made a bit more sense to me, still, same result.
    • INCLUDE: set C:\Program Files (x86)\Pulse-Eight\USB-CEC Adapter\include
    • Reboot, to make the variables stick
  • Open Developer command prompt or regular cmd
  • Attempt to build via cargo build or cargo build --release

Expected behavior

Build process of libcec-sys recognizing the cec.dll and dynamically linking with it.

Environment

  • OS: Windows 10 x64
  • Cargo: 1.71.1 (7f1d04c00 2023-07-29)
  • Libcec: 6.0.2 (via Windows installer)

Additional context

Verbose output for cargo build -vv

       Fresh cc v1.0.82   
       Fresh cmake v0.1.50
       Fresh fs_extra v1.3.0
       Fresh pkg-config v0.3.27
       Dirty libcec-sys v4.0.3: the env variable PATH changed
   Compiling libcec-sys v4.0.3
     Running `C:\Users\dev\Desktop\cec_example\target\debug\build\libcec-sys-c1b139439b26a8d7\build-script-build`
[libcec-sys 4.0.3] cargo:rerun-if-changed=build
[libcec-sys 4.0.3] cargo:rerun-if-changed=vendor
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=LD_LIBRARY_PATH
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=LDFLAGS
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=INCLUDE
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PATH
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_PATH
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=CC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=CFLAGS
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=CXX
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=CXXFLAGS
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=LIB
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=CL
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=_CL_
[libcec-sys 4.0.3]
[libcec-sys 4.0.3]
[libcec-sys 4.0.3] Using pkg-config to find out if libcec is installed
[libcec-sys 4.0.3]
[libcec-sys 4.0.3]
[libcec-sys 4.0.3] pkg-config with libcec major 6
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=LIBCEC_NO_PKG_CONFIG
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_PKG_CONFIG
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=LIBCEC_STATIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=LIBCEC_DYNAMIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_PATH
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=LIBCEC_STATIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=LIBCEC_DYNAMIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_PATH
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
[libcec-sys 4.0.3] pkg_config(>=6) -> fail: Err(Could not run `"pkg-config" "--libs" "--cflags" "libcec" "libcec >= 6"`
[libcec-sys 4.0.3] The pkg-config command could not be found.
[libcec-sys 4.0.3]
[libcec-sys 4.0.3] Most likely, you need to install a pkg-config package for your OS.
[libcec-sys 4.0.3]
[libcec-sys 4.0.3] If you've already installed it, ensure the pkg-config command is one of the
[libcec-sys 4.0.3] directories in the PATH environment variable.
[libcec-sys 4.0.3]
[libcec-sys 4.0.3] If you did not expect this build to link to a pre-installed system library,
[libcec-sys 4.0.3] then check documentation of the libcec-sys crate for an option to
[libcec-sys 4.0.3] build the library from source, or disable features or dependencies
[libcec-sys 4.0.3] that require pkg-config.)
[libcec-sys 4.0.3]
[libcec-sys 4.0.3]
[libcec-sys 4.0.3] pkg-config with libcec major 5
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=LIBCEC_NO_PKG_CONFIG
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_PKG_CONFIG
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=LIBCEC_STATIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=LIBCEC_DYNAMIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_PATH
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=LIBCEC_STATIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=LIBCEC_DYNAMIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_PATH
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
[libcec-sys 4.0.3] pkg_config(>=5) -> fail: Err(Could not run `"pkg-config" "--libs" "--cflags" "libcec" "libcec >= 5"`
[libcec-sys 4.0.3] The pkg-config command could not be found.
[libcec-sys 4.0.3]
[libcec-sys 4.0.3] Most likely, you need to install a pkg-config package for your OS.
[libcec-sys 4.0.3]
[libcec-sys 4.0.3] If you've already installed it, ensure the pkg-config command is one of the
[libcec-sys 4.0.3] directories in the PATH environment variable.
[libcec-sys 4.0.3]
[libcec-sys 4.0.3] If you did not expect this build to link to a pre-installed system library,
[libcec-sys 4.0.3] then check documentation of the libcec-sys crate for an option to
[libcec-sys 4.0.3] build the library from source, or disable features or dependencies
[libcec-sys 4.0.3] that require pkg-config.)
[libcec-sys 4.0.3]
[libcec-sys 4.0.3]
[libcec-sys 4.0.3] pkg-config with libcec major 4
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=LIBCEC_NO_PKG_CONFIG
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_PKG_CONFIG
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=LIBCEC_STATIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=LIBCEC_DYNAMIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_PATH
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=LIBCEC_STATIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=LIBCEC_DYNAMIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_PATH
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
[libcec-sys 4.0.3] pkg_config(>=4) -> fail: Err(Could not run `"pkg-config" "--libs" "--cflags" "libcec" "libcec >= 4"`
[libcec-sys 4.0.3] The pkg-config command could not be found.
[libcec-sys 4.0.3]
[libcec-sys 4.0.3] Most likely, you need to install a pkg-config package for your OS.
[libcec-sys 4.0.3]
[libcec-sys 4.0.3] If you've already installed it, ensure the pkg-config command is one of the
[libcec-sys 4.0.3] directories in the PATH environment variable.
[libcec-sys 4.0.3]
[libcec-sys 4.0.3] If you did not expect this build to link to a pre-installed system library,
[libcec-sys 4.0.3] then check documentation of the libcec-sys crate for an option to
[libcec-sys 4.0.3] build the library from source, or disable features or dependencies
[libcec-sys 4.0.3] that require pkg-config.)
[libcec-sys 4.0.3] OPT_LEVEL = Some("0")
[libcec-sys 4.0.3] TARGET = Some("x86_64-pc-windows-msvc")
[libcec-sys 4.0.3] HOST = Some("x86_64-pc-windows-msvc")
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=CC_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] CC_x86_64-pc-windows-msvc = None
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=CC_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] CC_x86_64_pc_windows_msvc = None
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_CC
[libcec-sys 4.0.3] HOST_CC = None
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=CC
[libcec-sys 4.0.3] CC = None
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
[libcec-sys 4.0.3] CRATE_CC_NO_DEFAULTS = None
[libcec-sys 4.0.3] CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
[libcec-sys 4.0.3] DEBUG = Some("true")
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=CFLAGS_x86_64-pc-windows-msvc
[libcec-sys 4.0.3] CFLAGS_x86_64-pc-windows-msvc = None
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=CFLAGS_x86_64_pc_windows_msvc
[libcec-sys 4.0.3] CFLAGS_x86_64_pc_windows_msvc = None
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=HOST_CFLAGS
[libcec-sys 4.0.3] HOST_CFLAGS = None
[libcec-sys 4.0.3] cargo:rerun-if-env-changed=CFLAGS
[libcec-sys 4.0.3] CFLAGS = None
[libcec-sys 4.0.3]
[libcec-sys 4.0.3]
[libcec-sys 4.0.3] Using 'smoke test' to find out if libcec is installed
[libcec-sys 4.0.3]
[libcec-sys 4.0.3]
[libcec-sys 4.0.3] Smoke testing with libcec major 6
[libcec-sys 4.0.3] smoke_abi6.c
[libcec-sys 4.0.3] build/smoke_abi6.c(6): warning C4013: '_Static_assert' undefined; assuming extern returning int
[libcec-sys 4.0.3] smoke_abi6.obj : error LNK2019: unresolved external symbol __imp_libcec_initialise referenced in function main
[libcec-sys 4.0.3] smoke_abi6.obj : error LNK2019: unresolved external symbol _Static_assert referenced in function main
[libcec-sys 4.0.3] C:\Users\dev\Desktop\cec_example\target\debug\build\libcec-sys-1ce880d6c0beb027\out\smoke_abi6_out.exe : fatal error LNK1120: 2 unresolved externals
[libcec-sys 4.0.3] smoke_abi6 -> fail: Ok(Output { status: ExitStatus(ExitStatus(2)), stdout: "smoke_abi6.c\r\nbuild/smoke_abi6.c(6): warning C4013: '_Static_assert' undefined; assuming extern returning int\r\nsmoke_abi6.obj : error LNK2019: unresolved external symbol __imp_libcec_initialise
 referenced in function main\r\nsmoke_abi6.obj : error LNK2019: unresolved external symbol _Static_assert referenced in function main\r\nC:\\Users\\dev\\Desktop\\cec_example\\target\\debug\\build\\libcec-sys-1ce880d6c0beb027\\out\\smoke_abi6_out.exe : fatal error LNK1120: 2 unresolved extern
als\r\n", stderr: "" })
[libcec-sys 4.0.3] 
[libcec-sys 4.0.3] 
[libcec-sys 4.0.3] Smoke testing with libcec major 5
[libcec-sys 4.0.3] smoke_abi5.c
[libcec-sys 4.0.3] build/smoke_abi5.c(6): warning C4013: '_Static_assert' undefined; assuming extern returning int
[libcec-sys 4.0.3] smoke_abi5.obj : error LNK2019: unresolved external symbol __imp_libcec_initialise referenced in function main
[libcec-sys 4.0.3] smoke_abi5.obj : error LNK2019: unresolved external symbol _Static_assert referenced in function main
[libcec-sys 4.0.3] C:\Users\dev\Desktop\cec_example\target\debug\build\libcec-sys-1ce880d6c0beb027\out\smoke_abi5_out.exe : fatal error LNK1120: 2 unresolved externals
[libcec-sys 4.0.3] smoke_abi5 -> fail: Ok(Output { status: ExitStatus(ExitStatus(2)), stdout: "smoke_abi5.c\r\nbuild/smoke_abi5.c(6): warning C4013: '_Static_assert' undefined; assuming extern returning int\r\nsmoke_abi5.obj : error LNK2019: unresolved external symbol __imp_libcec_initialise
 referenced in function main\r\nsmoke_abi5.obj : error LNK2019: unresolved external symbol _Static_assert referenced in function main\r\nC:\\Users\\dev\\Desktop\\cec_example\\target\\debug\\build\\libcec-sys-1ce880d6c0beb027\\out\\smoke_abi5_out.exe : fatal error LNK1120: 2 unresolved extern
als\r\n", stderr: "" })
[libcec-sys 4.0.3]
[libcec-sys 4.0.3]
[libcec-sys 4.0.3] Smoke testing with libcec major 4
[libcec-sys 4.0.3] smoke_abi4.c
[libcec-sys 4.0.3] build/smoke_abi4.c(6): warning C4013: '_Static_assert' undefined; assuming extern returning int
[libcec-sys 4.0.3] smoke_abi4.obj : error LNK2019: unresolved external symbol __imp_libcec_initialise referenced in function main
[libcec-sys 4.0.3] smoke_abi4.obj : error LNK2019: unresolved external symbol _Static_assert referenced in function main
[libcec-sys 4.0.3] C:\Users\dev\Desktop\cec_example\target\debug\build\libcec-sys-1ce880d6c0beb027\out\smoke_abi4_out.exe : fatal error LNK1120: 2 unresolved externals
[libcec-sys 4.0.3] smoke_abi4 -> fail: Ok(Output { status: ExitStatus(ExitStatus(2)), stdout: "smoke_abi4.c\r\nbuild/smoke_abi4.c(6): warning C4013: '_Static_assert' undefined; assuming extern returning int\r\nsmoke_abi4.obj : error LNK2019: unresolved external symbol __imp_libcec_initialise
 referenced in function main\r\nsmoke_abi4.obj : error LNK2019: unresolved external symbol _Static_assert referenced in function main\r\nC:\\Users\\dev\\Desktop\\cec_example\\target\\debug\\build\\libcec-sys-1ce880d6c0beb027\\out\\smoke_abi4_out.exe : fatal error LNK1120: 2 unresolved extern
als\r\n", stderr: "" })
[libcec-sys 4.0.3]
[libcec-sys 4.0.3]
[libcec-sys 4.0.3] Building vendored libcec
[libcec-sys 4.0.3] cargo:lib_vendored=true
[libcec-sys 4.0.3] cargo:libcec_version_major=6
[libcec-sys 4.0.3] cargo:rustc-cfg=abi6
[libcec-sys 4.0.3] Building libcec from local source
[libcec-sys 4.0.3] build libcec
[libcec-sys 4.0.3]  * compiling platform library for amd64
[libcec-sys 4.0.3] The system cannot find the path specified.
[libcec-sys 4.0.3]  --------------------------------------
[libcec-sys 4.0.3]  Generating cmake project:
[libcec-sys 4.0.3]  Architecture = amd64
[libcec-sys 4.0.3]  Project type = "NMake Makefiles"
[libcec-sys 4.0.3]  Cmake ARCH   =
[libcec-sys 4.0.3]  Project      = "C:\Users\dev\Desktop\cec_example\target\debug\build\libcec-sys-1ce880d6c0beb027\out\vendor\src\platform\windows\..\"
[libcec-sys 4.0.3]  Target       = "C:\Users\dev\Desktop\cec_example\target\debug\build\libcec-sys-1ce880d6c0beb027\out\libcec_build\cmake\amd64"
[libcec-sys 4.0.3]  Install      = "C:\Users\dev\Desktop\cec_example\target\debug\build\libcec-sys-1ce880d6c0beb027\out\libcec_build\amd64"
[libcec-sys 4.0.3]  Build type   = Debug
[libcec-sys 4.0.3]  Toolchain    = Visual Studio 16 2019
[libcec-sys 4.0.3]  --------------------------------------
[libcec-sys 4.0.3]
[libcec-sys 4.0.3] CMake Warning (dev) at CMakeLists.txt:1 (project):
[libcec-sys 4.0.3]   cmake_minimum_required() should be called prior to this top-level project()
[libcec-sys 4.0.3]   call.  Please see the cmake-commands(7) manual for usage documentation of
[libcec-sys 4.0.3]   both commands.
[libcec-sys 4.0.3] This warning is for project developers.  Use -Wno-dev to suppress it.
[libcec-sys 4.0.3]
[libcec-sys 4.0.3] CMake Error at CMakeLists.txt:1 (project):
[libcec-sys 4.0.3]   Running
[libcec-sys 4.0.3]
[libcec-sys 4.0.3]    'nmake' '-?'
[libcec-sys 4.0.3]
[libcec-sys 4.0.3]   failed with:
[libcec-sys 4.0.3]
[libcec-sys 4.0.3]    The system cannot find the file specified
[libcec-sys 4.0.3]
[libcec-sys 4.0.3]
[libcec-sys 4.0.3] CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
[libcec-sys 4.0.3] CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
[libcec-sys 4.0.3] -- Configuring incomplete, errors occurred!
[libcec-sys 4.0.3] The system cannot find the path specified.
[libcec-sys 4.0.3]  Compiling "C:\Users\dev\Desktop\cec_example\target\debug\build\libcec-sys-1ce880d6c0beb027\out\libcec_build\cmake\amd64" for amd64 using Visual Studio 16 2019
[libcec-sys 4.0.3] 'nmake' is not recognized as an internal or external command,
[libcec-sys 4.0.3] operable program or batch file.
[libcec-sys 4.0.3] cargo:rustc-link-search=native=C:\Users\dev\Desktop\cec_example\target\debug\build\libcec-sys-1ce880d6c0beb027\out\libcec_build\amd64
[libcec-sys 4.0.3] cargo:rustc-link-lib=cec
     Running `set CARGO=\\?\C:\Users\dev\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\cargo.exe&& set CARGO_CRATE_NAME=libcec_sys&& set CARGO_MANIFEST_DIR=C:\Users\dev\.cargo\registry\src\index.crates.io-6f17d22bba15001f\libcec-sys-4.0.3&& set CARGO_PKG_AUTHORS="Sami Salonen"&& set C
ARGO_PKG_DESCRIPTION="FFI bindings to libcec"&& set CARGO_PKG_HOMEPAGE=https://github.com/ssalonen/libcec-sys&& set CARGO_PKG_LICENSE=GPL-2.0&& set CARGO_PKG_LICENSE_FILE=""&& set CARGO_PKG_NAME=libcec-sys&& set CARGO_PKG_README=README.md&& set CARGO_PKG_REPOSITORY=https://github.com/ssalone
n/libcec-sys&& set CARGO_PKG_RUST_VERSION=""&& set CARGO_PKG_VERSION=4.0.3&& set CARGO_PKG_VERSION_MAJOR=4&& set CARGO_PKG_VERSION_MINOR=0&& set CARGO_PKG_VERSION_PATCH=3&& set CARGO_PKG_VERSION_PRE=""&& set OUT_DIR=C:\Users\dev\Desktop\cec_example\target\debug\build\libcec-sys-1ce880d6c0beb
027\out&& set PATH="C:\Users\dev\Desktop\cec_example\target\debug\deps;C:\Users\dev\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin;C:\Users\dev\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerS
hell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Windows\SysWOW64\WindowsPowerShell\v1.0\Modules\TShell\TShell\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Windows\system32\config\systemprofile\AppData\
Local\Microsoft\WindowsApps;C:\Users\dev\.cargo\bin;C:\Users\dev\AppData\Local\Microsoft\WindowsApps;C:\Users\dev\.dotnet\tools;C:\Program Files (x86)\Pulse-Eight\USB-CEC Adapter\x64"&& rustc --crate-name libcec_sys --edition=2021 C:\Users\dev\.cargo\registry\src\index.crates.io-6f17d22bba15
001f\libcec-sys-4.0.3\src\lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=291 --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg "feature=\"default\"" -C metadata=5bdcb732714be76c -C extra-filename=-
5bdcb732714be76c --out-dir C:\Users\dev\Desktop\cec_example\target\debug\deps -L dependency=C:\Users\dev\Desktop\cec_example\target\debug\deps --cap-lints warn -L native=C:\Users\dev\Desktop\cec_example\target\debug\build\libcec-sys-1ce880d6c0beb027\out\libcec_build\amd64 -l cec --cfg abi6` 
   Compiling cec_example v0.1.0 (C:\Users\dev\Desktop\cec_example)
     Running `set CARGO=\\?\C:\Users\dev\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\cargo.exe&& set CARGO_BIN_NAME=cec_example&& set CARGO_CRATE_NAME=cec_example&& set CARGO_MANIFEST_DIR=C:\Users\dev\Desktop\cec_example&& set CARGO_PKG_AUTHORS=""&& set CARGO_PKG_DESCRIPTION=""&& se
t CARGO_PKG_HOMEPAGE=""&& set CARGO_PKG_LICENSE=""&& set CARGO_PKG_LICENSE_FILE=""&& set CARGO_PKG_NAME=cec_example&& set CARGO_PKG_README=""&& set CARGO_PKG_REPOSITORY=""&& set CARGO_PKG_RUST_VERSION=""&& set CARGO_PKG_VERSION=0.1.0&& set CARGO_PKG_VERSION_MAJOR=0&& set CARGO_PKG_VERSION_MI
NOR=1&& set CARGO_PKG_VERSION_PATCH=0&& set CARGO_PKG_VERSION_PRE=""&& set CARGO_PRIMARY_PACKAGE=1&& set PATH="C:\Users\dev\Desktop\cec_example\target\debug\deps;C:\Users\dev\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin;C:\Users\dev\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bi
n;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Windows\SysWOW64\WindowsPowerShell\v1.0\Modules\TShell\TShell\;C:\Program Files (x86)\Wind
ows Kits\8.1\Windows Performance Toolkit\;C:\Windows\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps;C:\Users\dev\.cargo\bin;C:\Users\dev\AppData\Local\Microsoft\WindowsApps;C:\Users\dev\.dotnet\tools;C:\Program Files (x86)\Pulse-Eight\USB-CEC Adapter\x64"&& rustc --crate-n
ame cec_example --edition=2021 src\main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=291 --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 -C metadata=9064c001a4e2d1b3 --out-dir C:\Users\dev\Desktop\cec_example\tar
get\debug\deps -C incremental=C:\Users\dev\Desktop\cec_example\target\debug\incremental -L dependency=C:\Users\dev\Desktop\cec_example\target\debug\deps --extern libcec_sys=C:\Users\dev\Desktop\cec_example\target\debug\deps\liblibcec_sys-5bdcb732714be76c.rlib -L native=C:\Users\dev\Desktop\c
ec_example\target\debug\build\libcec-sys-1ce880d6c0beb027\out\libcec_build\amd64`
warning: unused import: `libcec_sys`
 --> src\main.rs:1:5
  |
1 | use libcec_sys;
  |     ^^^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

error: linking with `link.exe` failed: exit code: 1181
  |
  = note: "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\bin\\amd64\\link.exe" "/NOLOGO" "C:\\Users\\dev\\AppData\\Local\\Temp\\rustcfNEHsU\\symbols.o" "C:\\Users\\dev\\Desktop\\cec_example\\target\\debug\\deps\\cec_example.132r48g5ng3ivefx.rcgu.o" "C:\\Users\\dev\\Desktop\\cec_
example\\target\\debug\\deps\\cec_example.1em56xmfe62110zg.rcgu.o" "C:\\Users\\dev\\Desktop\\cec_example\\target\\debug\\deps\\cec_example.1zov6zdu19uyd43.rcgu.o" "C:\\Users\\dev\\Desktop\\cec_example\\target\\debug\\deps\\cec_example.1zwx4qnssk56lvvx.rcgu.o" "C:\\Users\\dev\\Desktop\\cec_ex
ample\\target\\debug\\deps\\cec_example.3tjg6i6sg43yc97t.rcgu.o" "C:\\Users\\dev\\Desktop\\cec_example\\target\\debug\\deps\\cec_example.484ho3fye15a81i9.rcgu.o" "C:\\Users\\dev\\Desktop\\cec_example\\target\\debug\\deps\\cec_example.2nvipbqfc6x55fv9.rcgu.o" "/LIBPATH:C:\\Users\\dev\\Desktop
\\cec_example\\target\\debug\\deps" "/LIBPATH:C:\\Users\\dev\\Desktop\\cec_example\\target\\debug\\build\\libcec-sys-1ce880d6c0beb027\\out\\libcec_build\\amd64" "/LIBPATH:C:\\Users\\dev\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "C:\\Users
\\dev\\Desktop\\cec_example\\target\\debug\\deps\\liblibcec_sys-5bdcb732714be76c.rlib" "C:\\Users\\dev\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd-4e8f46f7d0c95848.rlib" "C:\\Users\\dev\\.rustup\\toolchains\\stable-x86_64-pc-windows-
msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libpanic_unwind-5db344dab6eb1d2b.rlib" "C:\\Users\\dev\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_demangle-74e09b816cbd5555.rlib" "C:\\Users\\dev\\.rustup\\toolchains\\stable-x86_64
-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd_detect-0e78b5195f1cb27a.rlib" "C:\\Users\\dev\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libhashbrown-bfdbaec42e428240.rlib" "C:\\Users\\dev\\.rustup\\toolchains\\stable-x
86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_alloc-ece31b1fa03921a4.rlib" "C:\\Users\\dev\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libminiz_oxide-b1cda3daaedb751f.rlib" "C:\\Users\\dev\\.rustup
\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libadler-fcb0daf3e92ec962.rlib" "C:\\Users\\dev\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind-943c8b115715a79a.rlib" "C:\\Users\\dev\\.rustup\\t
oolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcfg_if-86ba8a5505ea3939.rlib" "C:\\Users\\dev\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liblibc-5e13ccbf89e39d2e.rlib" "C:\\Users\\dev\\.rustup\\toolc
hains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc-150c9edec7571387.rlib" "C:\\Users\\dev\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_core-cd5722df944967ab.rlib" "C:\\Users\\dev\
\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-f671e54f90f2e08c.rlib" "C:\\Users\\dev\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-0157311a6d6a27aa.rlib" "cec.lib"
 "kernel32.lib" "advapi32.lib" "bcrypt.lib" "kernel32.lib" "ntdll.lib" "userenv.lib" "ws2_32.lib" "kernel32.lib" "msvcrt.lib" "/NXCOMPAT" "/LIBPATH:C:\\Users\\dev\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "/OUT:C:\\Users\\dev\\Desktop\\ce
c_example\\target\\debug\\deps\\cec_example.exe" "/OPT:REF,NOICF" "/DEBUG" "/NATVIS:C:\\Users\\dev\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:C:\\Users\\dev\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\liballo
c.natvis" "/NATVIS:C:\\Users\\dev\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libcore.natvis" "/NATVIS:C:\\Users\\dev\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libstd.natvis"
  = note: LINK : fatal error LNK1181: cannot open input file 'cec.lib'


warning: `cec_example` (bin "cec_example") generated 1 warning
error: could not compile `cec_example` (bin "cec_example") due to previous error; 1 warning emitted

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions