我从过去的4天开始尝试让Zeromq在Windows机器上工作,但似乎没有任何进展。

我按照给定的步骤进行操作,并解决了一些依赖问题。

我已经成功建立了libzmq,czmq,libsodium。

我使用cmake 3.12进行配置,并使用VS2015 SDK 8.1来构建解决方案。

我能够运行czmq_selftest.exe,但是由于几件事而失败,这就是另一个问题。

但是当我尝试运行基本程序myapp.c时

#include <czmq.h>
int main (void) {
 zsock_t *publisher = zsock_new (ZMQ_PUB);
 zsock_set_curve_server (publisher, true);
 puts ("Hello, Curve!");
 zsock_destroy(&publisher);
 return 0;
}


我看到这个缺少的库问题,我尝试使用给定的链接方法-

 gcc myapp.c -o myapp -lczmq -lzmq


但是什么都没有做,如果有人可以提供一些解决方案,那将真的很有帮助。

这是其他信息-

OS - Windows 10
Cmake - 3.13.2
Visual Studio 2015, SDK 8.1
libzmq 4.3.0
czmq 4.1.1


资料来源:https://github.com/zeromq/czmq

更多信息-

我的系统

C:\Users\P\go\src\github.com\zeromq\czmq\include


包含所有库。

我的程序在-

C:\Users\P\go\src\github.com\zeromq\czmq\examples\security


谢谢

最佳答案

编译器无法跟踪用户可能自己在系统上安装的所有库。您必须告诉编译器在哪里可以找到头文件或链接程序库之类的东西。

要告诉编译器将路径添加到用于搜索头文件的列表中,请使用-I(大写i)选项。

要告诉链接器向其用于搜索链接器库的列表添加路径,请使用-L选项。

考虑到您在问题和评论中提到的路径,您需要同时添加-I../../include-L../../Debug

也就是说,您完整的命令应类似于

gcc myapp.c -o myapp -I../../include -L../../Debug -lczmq -lzmq


当然,这要求您将您位于目录C:\Users\P\go\src\github.com\zeromq\czmq\examples\security中。

09-08 10:07