运行 Windows 上的 libxlsxwriter

Running libxlsxwriter on Windows

我正在尝试使用 libxlsxwriter,但我似乎可以正确编译或 运行。

我按照 Windows 的说明使用 Mingw-w64msys2,此处提供:http://libxlsxwriter.github.io/getting_started.html

我从他们的网站安装了 msys2,并使用 pacman -Syu 更新了所有内容。然后我安装了 zlib 推荐的:

# Install the dev tools for libxlsxwriter.
pacman -S git gcc make zlib-devel

然后我运行下载编译代码libxlswriter:

# Clone and build libxlsxwriter.
git clone https://github.com/jmcnamara/libxlsxwriter.git
cd libxlsxwriter/
make
make install
# run example
cd ..
cc myexcel.c -o myexcel -lxlsxwriter -lz

现在有一个名为 myexcel 的可执行文件,它应该创建一个基本的 excel 文档,但是当我双击它时出现错误:

The program can't start because msys-2.0.dll is missing from your computer.

我也收到缺少 msys-z.dll

的错误

我不确定我做错了什么或如何解决它。

如有任何帮助,我们将不胜感激

编辑:

如果我运行:

make examples
./examples/hello

hello world 示例成功 运行s 所以似乎安装正确。我想我只是不明白如何把它变成 运行 用户制作的 .c

MSYS 控制台在打开控制台时定义 MSYS 命令和 DLL 的路径:例如,如果 MSYS 安装在 C:\msys64 中,它会在本地将路径添加到 C:\msys64\usr\bin 但不会将其添加到Windows系统路径。

因此,如果您单击 MSYS 外部的可执行文件,它找不到 DLL,因为它们不在 windows PATH 中。

多种解决方案:

1) 在用户或计算机 PATH 中添加 C:\msys64\usr\bin(编辑环境变量)。作为奖励,您可以在 windows CMD 中使用 grep 等命令。作为一个缺点,可以有 mixups/conflicts 和 findsort.

这样的命令

2) 在您的可执行目录中创建一个包含以下内容的 myexcel.bat 文件:

@echo off
set PATH=C:\msys64\usr\bin;%PATH%
%~PD0\myexcel.exe

%~PD0 prefix 允许从 .bat 路径找到可执行文件,所以如果 .bat 文件是来自另一个目录的 运行 它仍然可以找到可执行文件)

3) 复制可执行文件所在的 MSYS DLL。由于 DLL 与 .exe Windows 位于同一目录中,因此可以找到它们。推荐用于独立发行版,不适合个人使用,因为它会创建大量副本。

4) 针对 MSYS .a 库的静态链接。我不知道是否可以对所有库执行此操作。例如,似乎找不到 libz.a