从ZMQ版本4.1开始编辑:
Configure自动寻找libsodium,因此不再需要。如果出于某种原因您希望在没有libsodium的情况下构建它,并且已经构建并安装了它,请使用'--without-libsodium'配置libzmq。

所以我在用libsodium构建/制作zeromq时遇到问题。

即时通讯使用msys2作为 shell 程序-特别是mingw32_shell-和带有libsodium 1.0.1和mingw-w64 32位(gcc 4.9.2)的zmq 4.1.0 rc1。

我目前能够像这样编译libsodium

cd .../libsodium
bash configure
make
make check
make install

一切都很好,所有测试都通过了,并通过了libs并包括了msys2似乎知道的/usr/local/文件夹。

然后当我尝试使用这些命令构建zeromq时
cd .../zeromq
bash configure --with-libsodium
make
make check
make install

我从来没有超过配置阶段,因为配置返回
checking for sodium_init in -lsodium... no
configure: error: libsodium is not installed.  Install it or don't pass --with-libsodium to configure script

我尝试了这篇文章中建议的方法-ZeroMQ doesn't spot libsodium-但没有成功。

因此,因此,我的问题是:无论是--with-libsodium,--with-libsodium-include-dir =和--with-libsodium-lib-,我如何为zeromq的配置设置位置以查找libsodium? dir =,还是将它们“安装”在msys2的 shell 程序能够找到的位置?

最佳答案

我想您已经尝试过了,因为您提供的链接提到了它:

--with-libsodium=/usr/local

我尝试了这个,对我有用。但是,我不建议这样做,因为对于MSYS2,如果/usr/local仅用于MSYS2软件而不是MinGW-w64软件,则它更干净。对于MinGW-w64 i686软件,“本地”的“正确”前缀为/mingw32/local

我刚刚添加了libsodium作为对zeromq软件包的依赖。

Github MinGW-w64 zeromq PKGBUILD commit e32ae0

我明天将要求Alexey对其进行重建和重新包装。

关于windows - 用libsodium构建libzmq,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27400216/

10-12 15:23