运行 Windows 上的 libxlsxwriter
Running libxlsxwriter on Windows
我正在尝试使用 libxlsxwriter
,但我似乎可以正确编译或 运行。
我按照 Windows 的说明使用 Mingw-w64
和 msys2
,此处提供: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 和 find
或 sort
.
这样的命令
或
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
。
我正在尝试使用 libxlsxwriter
,但我似乎可以正确编译或 运行。
我按照 Windows 的说明使用 Mingw-w64
和 msys2
,此处提供: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 和 find
或 sort
.
或
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
。