c - 运行程序时出现错误#include <czmq.h>丢失

标签 c windows visual-studio zeromq

过去 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 中,正如您所说。

关于c - 运行程序时出现错误#include <czmq.h>丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54144527/

相关文章:

visual-studio-2010 - Visual Studio - 无法使用打开文件等浏览对话框

.net - Visual Studio 2008/2010 中调试/发布配置编译到不同文件夹的目的是什么?

c - 如何通过 COM 接口(interface)以编程方式激活 OLE 控件?

c - 如何在共享内存中保存结构 C - Windows

从 C 调用 FORTRAN 子程序

windows - Mura 设置不显示 Mura 管理页面

php - 如何在命令行上运行 php?

c# - 在 Visual Studio 中编辑的 Unity 脚本不提供自动完成功能

c - 将文件指针分配给另一个时出现段错误

c - 在 C 中解析带引号的字符串