链接静态 C 库时 Rust 缺少库
Rust missing libraries while linking static C libraary
我在链接静态库时遇到问题 - 当没有 windows.h 并调用 WinAPI 时,它链接并工作正常,但是当它们使用时,我在构建时遇到此错误:
error: linking with `link.exe` failed: exit code: 1120
note: external-test.lib(library_win32.cpp.obj) : error LNK2019: unresolved external symbol __imp_MessageBoxW referenced in function init_window
在所有使用的库列表中,没有user32.lib。也许这是问题所在?我怎样才能告诉链接器使用它
note: "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\link.exe" ... "kernel32.lib" "advapi32.lib" "ws2_32.lib" "userenv.lib" "msvcrt.lib"
此处构建脚本:
fn main() {
println!("cargo:rustc-link-search={}/src/external",env::var("CARGO_MANIFEST_DIR").unwrap());
}
解决方案很简单 - link 构建脚本中的 user32
我在链接静态库时遇到问题 - 当没有 windows.h 并调用 WinAPI 时,它链接并工作正常,但是当它们使用时,我在构建时遇到此错误:
error: linking with `link.exe` failed: exit code: 1120
note: external-test.lib(library_win32.cpp.obj) : error LNK2019: unresolved external symbol __imp_MessageBoxW referenced in function init_window
在所有使用的库列表中,没有user32.lib。也许这是问题所在?我怎样才能告诉链接器使用它
note: "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\link.exe" ... "kernel32.lib" "advapi32.lib" "ws2_32.lib" "userenv.lib" "msvcrt.lib"
此处构建脚本:
fn main() {
println!("cargo:rustc-link-search={}/src/external",env::var("CARGO_MANIFEST_DIR").unwrap());
}
解决方案很简单 - link 构建脚本中的 user32