如何在Windows上链接libzmq?

如何在Windows上链接libzmq?,windows,linker,rust,rust-cargo,Windows,Linker,Rust,Rust Cargo,我想把libzmq和我的Rust程序联系起来。我在~\.cargo\config中有这个: [target.x86_64-pc-windows-gnu.chainsaw] rustc-link-search = ["C:\\Program Files\\ZeroMQ 4.0.4\\bin"] 运行货物测试会导致此错误: 编译链锯v0.0.1(file:///D:/chainsaw) 错误:与“gcc”链接失败:退出代码:1 | =注意:“gcc”“-Wl,--enable long secti

我想把libzmq和我的Rust程序联系起来。我在
~\.cargo\config
中有这个:

[target.x86_64-pc-windows-gnu.chainsaw]
rustc-link-search = ["C:\\Program Files\\ZeroMQ 4.0.4\\bin"]
运行
货物测试
会导致此错误:

编译链锯v0.0.1(file:///D:/chainsaw)
错误:与“gcc”链接失败:退出代码:1
|
=注意:“gcc”“-Wl,--enable long section names”“-fn不使用链接器插件”“-Wl,--nxcompat”“-nostdlib”“-m64”“C:\\Rust
\\lib\\rustlib\\x86\u 64-pc-windows-gnu\\lib\\crt2.o“C:\\Rust\\lib\\rustlib\\x86\u 64-pc-windows-gnu\\lib\\rsbegin.o”“-L”
“C:\\Rust\\lib\\rustlib\\x86\U 64-pc-windows-gnu\\lib”“D:\\chainsaw\\target\\debug\\deps\\chainsaw-0154e16e13da8295.0.o”
“-o”“D:\\chainsaw\\target\\debug\\deps\\chainsaw-0154e16e13da8295.exe”“-Wl,--gc节”“-nodefaultlibs”“-L”“D:\\
链锯\\target\\debug\\deps”“-L”“C:\\Rust\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib”“-Wl,-Bstatic”“-Wl,-Bdynamic”
“-l”“zmq”“D:\\chainsaw\\target\\debug\\deps\\liblibc-29ef97a68464c2b7.rlib”“C:\\Rust\\lib\\rustlib\\x86\u 64-pc-windows”
-gnu\\lib\\libtest-f5a209a9.rlib“”C:\\Rust\\lib\\rustlib\\x86\\U 64-pc-windows-gnu\\lib\\libterm-f5a209a9.rlib“”C:\\Rust\
\lib\\rustlib\\x86\u 64-pc-windows-gnu\\lib\\libgetopts-f5a209a9.rlib“C:\\Rust\\lib\\rustlib\\x86\u 64-pc-windows-gnu\\lib
\\libstd-f5a209a9.rlib“”C:\\Rust\\lib\\rustlib\\x86\u 64-pc-windows-gnu\\lib\\libpanic\u unwind-f5a209a9.rlib“”C:\\Rust\\l
ib\\rustlib\\x86\u 64-pc-windows-gnu\\lib\\libunwind-f5a209a9.rlib“C:\\Rust\\lib\\rustlib\\x86\u 64-pc-windows-gnu\\lib\\l
ibrand-f5a209a9.rlib“”C:\\Rust\\lib\\rustlib\\x86\u 64-pc-windows-gnu\\lib\\libcollections-f5a209a9.rlib“”C:\\Rust\\lib\
\rustlib\\x86\u 64-pc-windows-gnu\\lib\\librustc\u unicode-f5a209a9.rlib“C:\\Rust\\lib\\rustlib\\x86\u 64-pc-windows-gnu\\li
b\\liblibc-f5a209a9.rlib“”C:\\Rust\\lib\\rustlib\\x86\\u 64-pc-windows-gnu\\lib\\liballoc-f5a209a9.rlib“”C:\\Rust\\lib\\r
ustlib\\x86\U 64-pc-windows-gnu\\lib\\liballoc\u system-f5a209a9.rlib“C:\\Rust\\lib\\rustlib\\x86\U 64-pc-windows-gnu\\lib\\
libcore-f5a209a9.rlib“”C:\\Rust\\lib\\rustlib\\x86\u 64-pc-windows-gnu\\lib\\libcompiler\u builtins-f5a209a9.rlib“”-l“”ke
rnel32“-l”ws2_32“-l”userenv“-l”SHELL 32“-l”advapi32“-l”gcc_eh“-lmingwex”-lmingw32“-lgcc”-lmsv
crt“-luser32”“-lkernel32”“C:\\Rust\\lib\\rustlib\\x86\U 64-pc-windows-gnu\\lib\\rsend.o”
=注意:ld:找不到-lzmq
如您所见,
-L“C:\Program Files\ZeroMQ 4.0.4\bin”
未被传递到链接器

为什么在货物配置文件中设置
rustc link search
不起作用

我已经检查了这些东西:

  • Cargo实际上读取配置文件
  • 目录存在
  • x86_64-pc-windows-gnu
    是我的目标
  • “电锯”是我目标的名字
  • 在执行清理生成时也会发生相同的错误

ZeroMq是为gnu abi编译的吗?为什么要使用
[target.x86\u 64-pc-windows-gnu.chainsaw]
?你是从哪里学到这个语法的?但是,它们只到了三元组。ZeroMq是为gnu abi编译的吗?为什么要使用
[target.x86\u 64-pc-windows-gnu.chainsaw]
?你是从哪里学到这个语法的?但是,他们只到了三垒。