Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteDernière révisionLes deux révisions suivantes |
informatique:swig [2017/10/11 14:28] – 134.158.87.12 | informatique:swig [2018/06/19 14:32] – modification externe 127.0.0.1 |
---|
| |
Site officiel: | Site officiel: |
[[http://swig.org]] | [[http://swig.org]]\\ |
| pour l'installation sous ubuntu: [[https://doc.ubuntu-fr.org/swig]] |
| |
Comparatif avec d'autre solutions: | Comparatif avec d'autre solutions: |
| |
===== Exemple avec le pompage (lmapc104) ===== | ===== Exemple avec le pompage (lmapc104) ===== |
| <note important>Les étapes 1 et 2 ci-dessous ont été intégré dans le //**Makefile**// qu'il suffit de lancer avec la commande //**make**// depuis une fenêtre //mingw// (dans l'explorateur de fichiers Windows, clic-droit sur le répertoire pompageGC puis //git bash here//)</note> |
| ==== Étape 1 ==== |
dans une commande (cmd) "dos":\\ | dans une commande (cmd) "dos":\\ |
| <code dos> |
C:\workspace\pompageGC\src> | C:\workspace\pompageGC\src> |
<code>C:\Users\pompage\Downloads\swigwin-3.0.12\swig.exe -python -c++ pompage.i</code> | C:\Users\pompage\Downloads\swigwin-3.0.12\swig.exe -python -c++ pompage.i |
| </code> |
qui crée les fichiers //src/pompage_wrap.cxx// et //src/pompage.py// | qui crée les fichiers //src/pompage_wrap.cxx// et //src/pompage.py// |
| |
| On déplace //pompage.py// à la racine du projet: |
| <code bash>$ mv src/pompage.py .</code> |
| |
| <note tip>Ces deux étapes peuvent être réalisée simplement dans le répertoire //C:\workspace\pompageGC\// en lançant le batch **runSwig.bat**</note> |
| ==== Étape 2 ==== |
dans un terminal (mingw-64)(ds explorer windows, clic-droit sur le répertoire workspace\pompageGC\src puis "//Git Basch here//") :\\ | dans un terminal (mingw-64)(ds explorer windows, clic-droit sur le répertoire workspace\pompageGC\src puis "//Git Basch here//") :\\ |
pompage@LMAPC104 MINGW64 /c/workspace/pompageGC (swig) | pompage@LMAPC104 MINGW64 /c/workspace/pompageGC (swig) |
<code>$ g++ -c -std=c++14 -D_hypot=hypot -DWIN32 src/*.cpp src/pompage_wrap.cxx -I./lib/ -I/C/Program\ Files\ \(x86\)/Python36-32/include</code> | <code bash>$ g++ -c -std=c++14 -D_hypot=hypot -DWIN32 src/*.cpp src/pompage_wrap.cxx -I./lib/ -I/C/Program\ Files\ \(x86\)/Python36-32/include</code> |
qui compile avec python, le -I./lib/ est pour le PComm.h (carte Moxa), -D_hypot=hypot pour la compatibilité avec Python ((le https://stackoverflow.com/questions/10660524/error-building-boost-1-49-0-with-gcc-4-7-0)) | qui compile avec python, le -I./lib/ est pour le PComm.h (carte Moxa), -D_hypot=hypot pour la compatibilité avec Python ((le https://stackoverflow.com/questions/10660524/error-building-boost-1-49-0-with-gcc-4-7-0)) |
| |
pompage@LMAPC104 MINGW64 /c/workspace/pompageGC (swig) | pompage@LMAPC104 MINGW64 /c/workspace/pompageGC (swig) |
<code>$ g++ -shared *.o /c/ProgramData/Anaconda3/python36.dll lib/PCOMM.LIB /c/Windows/System32/msvcr120.dll -L./lib/ -lpci-dask64 -o _pompage.pyd</code> | <code bash>$ g++ -shared *.o /c/ProgramData/Anaconda3/python36.dll lib/PCOMM.LIB /c/Windows/System32/msvcr120.dll -L./lib/ -lpci-dask64 -o _pompage.pyd</code> |
qui réalise l'édition de liens (link) et crée les fichiers //_pompage.pyd// | qui réalise l'édition de liens (link) et crée les fichiers //_pompage.pyd// |
<note tip>Ces deux étapes peuvent être lancé plus simplement en tapant, depuis une fenêtre cli mingw, et en étant dans le répertoire c:/workspace/pompageGC <code>bash mf_pompage-py.sh</code></note> | <note tip>Ces deux étapes peuvent être lancées plus simplement en tapant, depuis une fenêtre CLI mingw, et en étant dans le répertoire c:/workspace/pompageGC <code>bash mf_pompage-py.sh</code></note> |
| <note important>Si de nouvelles méthodes apparaissent dans //myControler// (fichiers pompage.hpp et cpp), l'étape 1 doit être à nouveau réalisée</note> |
| |
On déplace //pompage.py// à la racine du projet: | ==== Utilisation ==== |
<code>$ mv src/pompage.py .</code> | |
| |
à nouveau dans une commande "dos", on teste: | à nouveau dans une commande "dos", on teste: |
<code> | <code dos> |
C:\workspace\pompageGC\src>cd .. | C:\workspace\pompageGC\src>cd .. |
| |
>>> | >>> |
</code> | </code> |
| |
| ou pour exécuter le programme, lancer le batch: |
| <code dos>runPython_pyqt_pompage.bat</code> |
| <note important>les DLL, notamment PCOMM.dll et PCI-DASK64.dll doivent être dans le répertoire d'exécution ou bien accessibles (installées par un logiciel et le //PATH// windows correctement défini</note> |
| |
| Débugger C++/Swig/python: pdb et gdb !!\\ |
| [[https://stackoverflow.com/questions/13178116/debugging-mixed-python-c-code-in-eclipse]] |
| |