微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

链接静态C库时生锈缺少的库

如何解决链接静态C库时生锈缺少的库

我在链接静态库时遇到问题-当没有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());
}

解决方法

解决方案很简单-在构建脚本中链接user32

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。