【问题标题】:Running libxlsxwriter on Windows在 Windows 上运行 libxlsxwriter
【发布时间】:2016-07-19 16:34:35
【问题描述】:

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

我使用Mingw-w64msys2 遵循了Windows 的说明: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 示例成功运行,因此似乎安装正确。我想我只是不明白如何让它运行用户制作的 .c

【问题讨论】:

  • 您必须在 Windows 中添加 MSYS DLL 的路径。 ATM dll 仅在 MSYS 控制台路径中。您至少可以从 MSYS 控制台运行可执行文件吗?
  • 是的!有道理,谢谢!
  • 我将 MinGW/bin 添加到我的 PATH 中,但它仍然无法正常工作。你知道如何将 MSYS 添加到控制台路径吗?

标签: c command-line cygwin msys2 libxlsxwriter


【解决方案1】:

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

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

许多解决方案:

1) 在用户或计算机路径中添加C:\msys64\usr\bin(编辑环境变量)。作为奖励,您可以在 Windows CMD 中访问诸如 grep 之类的命令。作为一个缺点,可能会与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

【讨论】:

  • 感谢您的详尽解释。小注:路径应为C:\msys64\usr\bin
猜你喜欢
  • 1970-01-01
  • 2013-08-05
  • 2011-05-05
  • 2018-08-09
  • 2012-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多