如何为 Windows 编译 Samba(主要是 SMBClient.exe)?

如何为 Windows 编译 Samba(主要是 SMBClient.exe)?

我在 Windows Server 2012 R2 服务器上使用 Pydio 进行“云”文件共享。出现了一种情况,我们想连接到另一台 2012 R2 服务器上的现有共享。Pydio 有一个 SMB 包装器,它依赖于服务器上的 SMBClient.exe。如果我们使用 *nix,那会很容易,但由于它托管在 Windows 服务器上,所以我们需要客户端的 Windows 端口。经过大量搜索,我找到了一个可以做到这一点的人(https://www.leepa.io/lpackham/smbclient/)和另一个人完成了 Samba 的全部工作(https://smithii.com/samba)。遗憾的是,这两个都是旧版本的客户端,无法在新的 Windows 服务器上运行。

让我重新表述一下……您可以从 Windows 服务器读取文件,但不能放置文件……它会创建 0 字节文件,并且根据研究表明,在较新的 Windows 服务器(2012 年)上使用旧版本的 Samba 客户端(版本 3)时会发生这种情况。

有人能指导我如何重新编译适用于 Windows 的最新版本的 Samba 吗?我自己尝试过使用 Cygwin 进行编译,但无法成功,尝试仅编译客户端部分同样没有成功。

答案1

经过多次尝试和错误,我能够使用 Cygwin 编译足够的 Samba 来编译 smbclient.exe 文件。所需步骤如下:

在虚拟机上安装了 Windows XP SP3 32 位(我使用了 VirtualBox)
安装了 CygWin 32 位和 Devel 文件
提取了 Samba 3.6.25
导航到 Source3 子目录
执行:

./configure --prefix=/usr/local/samba
制作 pch
制作

make 在编译 net.exe 时失败,但在成功编译 smbclient.exe 之后失败,所以我现在拥有 3.6.25 版本的客户端,它可以在 2012 R2 服务器上运行。

-艾伦

相关内容