J’essaie d’utiliser libxlsxwriter
, mais je peux sembler que les choses se comstacknt ou fonctionnent correctement.
J’ai suivi les instructions pour Windows en utilisant Mingw-w64
et msys2
disponibles ici: http://libxlsxwriter.github.io/getting_started.html .
J’ai installé msys2
partir de leur site Web et tout mis à jour avec pacman -Syu
. Ensuite, j’ai installé zlib
avec le recommandé:
# Install the dev tools for libxlsxwriter. pacman -S git gcc make zlib-devel
Ensuite, je lance le code pour télécharger et comstackr 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
Il existe maintenant un exécutable nommé myexcel
qui devrait créer un document Excel de base, mais lorsque je double-clique dessus, les erreurs suivantes apparaissent:
The program can't start because msys-2.0.dll is missing from your computer.
J’ai aussi l’erreur pour msys-z.dll
Je ne suis pas sûr de ce que j’ai fait de mal ou de la façon de le réparer.
Toute aide serait appréciée
modifier:
si je cours:
make examples ./examples/hello
L’exemple hello world s’exécute avec succès, de sorte que tout semble avoir été installé correctement. Je suppose que je ne comprends tout simplement pas comment le faire pour exécuter un utilisateur .c
La console MSYS définit le chemin d’access aux commandes et aux DLL MSYS lors de l’ouverture de la console: ex si MSYS est installé dans C:\msys64
il ajoute localement le chemin d’access à C:\msys64\usr\bin
mais ne l’ajoute pas au système PATH Windows. .
Donc, si vous cliquez sur l’exécutable en dehors de MSYS, les DLL ne pourront pas être trouvées car elles ne sont pas dans Windows PATH.
de nombreuses solutions:
1) ajoutez C:\msys64\usr\bin
dans C:\msys64\usr\bin
utilisateur ou d’ordinateur (modification des variables d’environnement). En prime, vous avez access à des commandes telles que grep
dans votre Windows CMD. Inconvénient, il peut y avoir des mélanges / conflits avec des commandes telles que find
ou sort
.
ou
2) créez un fichier myexcel.bat
contenant les éléments suivants dans votre répertoire exécutable:
@echo off set PATH=C:\msys64\usr\bin;%PATH% %~PD0\myexcel.exe
( %~PD0 prefix
permet de trouver l’exécutable à partir du chemin .bat. Si le fichier .bat est exécuté depuis un autre répertoire, il trouve toujours l’exécutable)
3) copiez les DLL MSYS où réside votre exécutable. Étant donné que les DLL sont dans le même répertoire que le fichier .exe, Windows les trouvera. Recommandé pour une dissortingbution autonome, pas pour un usage personnel car cela crée beaucoup de copies.
4) liaison statique contre MSYS .a libs. Je ne sais pas si cela peut être fait pour toutes les bibliothèques. Impossible de trouver libz.a
par exemple.