Programmation avec MingW32

Bonsoir,

Voila mon but est de pouvoir programmer des applications avec wxwidgets sur linux pour des systèmes d’exploitation Windows.

Pour cela j’ai suivi ce tutorial :

http://wiki.codeblocks.org/index.php?title=Cross_Compiling_wxWidgets_Applications_on_Linux

Tout le tuto s’est passé sans problème jusqu’a :

[quote] * In the Build options of the project you have to move wx-config --cflags from the global Compiler settings -> Other options to the one for the standard build targets (Debug and Release).

Do the same for Linker Settings -> Other linker options. 

* To make it clear the Other options-tabs of the Compiler settings and Linker settings belonging to the whole project have to be empty (or only include settings that are valid for the Linux and the MS Windows targets). [/quote]

Je ne comprends pas quand il dit il faut “bouger” car je ne trouve rien à “bouger”.

Pour finir, si vous auriez des tutoriaux plus simple et en français je suis preneur.

Merci d’avance.

Bonjour,

regarde ici:http://cpp.developpez.com/faq/cb/ si tu trouves ton bonheur.

Il me semble comprendre dans l’article que tu donnes que tu dois changer les options pour le compilateur et le linkeur,
justement pour fournir le compilateur de la plate-forme que tu veux.

Si tu fais clic droit sur ton projet dans la fenêtre latérale gauche tu as le menu "build options"
qui t’ouvre une fenêtre avec l’onglet “other options”.

C’est vrai qu’il y a plusieurs fenêtre pour le compilateur, je fais de la cross-compile pour ARM et je n’ai réussis à choisir les bonnes options qu’en faisant sur le projet dans la fenêtre de gauche un clic droit puis “build options” et un clic droit puis “properties” et non à partir du menu principale de la barre supérieur.

Si tu n’y arrives pas je ferais la manipulation

bon courage et tiens moi au courant, cela m’intéresse.

Merci pour ta réponse,

Malheuresement je n’y arrive toujours pas. Je ne comprends pas très bien la configuration de code:blocks.

Si tu peux m’aider sa serai super !

Merci d’avance.

Bonjour Ttran,

bon j’ai réussit mais j’ai dû adapter certaines choses.

j’ai suivit la doc, ce que j’écris ensuite en fait référence.

Etapes que j’ai noté:

installation de mingw32 binutils et runtime par synaptic
ajout dans les sources:
deb apt.jenslody.de/ any main
deb-src apt.jenslody.de/ any main
apt-get update
apt-get install jens-lody-debian-keyring


puis:
deb apt.wxwidget.org/ lenny-wx main
key-import:
wget -q apt.wxwidgets.org/key.asc -O- | apt-key add -
après j’ai fait “recharger” et “tout mettre à jour” dans synaptic.
apparait /usr/i586-mingw32msvc
je fais un “wx-config --list” dans un shell

[color=#0000FF]Default config is gtk2-unicode-release-2.8

Default config will be used for output

Alternate matches:
base-unicode-release-2.6
base-unicode-release-2.8
gtk2-unicode-release-2.6[/color]

[color=#800000]
je ne vois pas ce que la doc affiche i586-mingw32msvc-msw-unicode…

si je lance “wx-config --host=i586-mingw32msvc --rescomp” dans un shell j’ai une erreur

installation à partir de synaptic des paquets jens libwxmsw2.8-dev et wx2.8-headers-msw.

je refais “wx-config --list” apparait alors:
[/color]
[color=#0000FF]Default config is gtk2-unicode-release-2.8

Default config will be used for output

Alternate matches:
base-unicode-release-2.6
base-unicode-release-2.8
gtk2-unicode-release-2.6

Also available in /usr:
i586-mingw32msvc-msw-unicode-release-2.8
i586-mingw32msvc-msw-unicode-release-static-2.8[/color]

[color=#800000]je n’ai pas le fichier debug… je continue.

maintenant si je lance dans un shell “wx-config --host=i586-mingw32msvc --rescomp” j’ai:[/color]

i586-mingw32msvc-windres --include-dir /usr/i586-mingw32msvc/include/wx-2.8 --define WIN32 --define WIN95 --define GNUWIN32

[color=#800000]
création d’un projet tout cuit wxwidget dans codeblock.

A partir du menu principal dans:
Settings -> compiler and debugger:

création dans “selected compiler” de “win cross compile” par touche “copy”

je modifie la toolchain avec les compilateurs que je trouve sous /usr/bin
/usr/bin/i586-mingw32msvc-gcc
/usr/bin/i586-mingw32msvc-g++
/usr/bin/i586-mingw32msvc-ar

Je lance la compile:

Après compilation sous codeblock les headers ne sont pas trouvés je regarde dans synaptic ou ils sont installées et
j’ajoute dans “Search directories->compiler” cela “/usr/i586-mingw32msvc/include/wx-2.8” en plus
[/color]

petit truc pour synaptic:
pour avoir le contenu d’un paquet et savoir ou se trouvent installés les fichiers du paquet tu fais clic droit sur le nom du paquet puis propriétés.

Je te donne ma configue codeblock toujours en rapport avec la doc que tu as référencée:
setting -> compiler and debugger-> search directories

compiler:
/usr/i586-mingw32msvc/include/wx-2.8
/usr/i586-mingw32msvc/include

linker:
/usr/i586-mingw32msvc/lib

ressource compiler:
/usr/i586-mingw32msvc/include/wx-2.8
/usr/i586-mingw32msvc/include

le reste idem à la doc pour le menu principal.

pour le menu local: clic droit sur le projet dans la fenêtre gauche:

test2->properties:
j’ai enlevé Release, Debug et j’ai créé winRelease.(la doc ne dit pas d’enlever Release et Debug).

test2->build options,
compiler settings -> other options:
wx-config --host=i586-mingw32msvc --static --cflags

linker settings -> other linker options:
wx-config --host=i586-mingw32msvc --static --libs

search directories ->

compiler:
/usr/i586-mingw32msvc/include/wx-2.8
/usr/i586-mingw32msvc/include

linker:
/usr/i586-mingw32msvc/lib
/usr/i586-mingw32msvc/lib/wx

ressource compiler:
/usr/i586-mingw32msvc/include/wx-2.8
/usr/i586-mingw32msvc/include

vérifie bien que le label “Policy:” dans chaque fenêtre correspond à la doc(en cliquant sur l’image).

voilà la compile finale:

-------------- Build: WinRelease in test2 ---------------

i586-mingw32msvc-g++ -Wall -I/usr/i586-mingw32msvc/lib/wx/include/i586-mingw32msvc-msw-unicode-release-static-2.8 -I/usr/i586-mingw32msvc/include/wx-2.8 -D__WXMSW__ -mthreads -O2 -I/usr/i586-mingw32msvc/lib/wx/include/i586-mingw32msvc-msw-unicode-release-static-2.8 -I/usr/i586-mingw32msvc/include/wx-2.8 -D__WXMSW__ -mthreads -I/usr/i586-mingw32msvc/include/wx-2.8 -I/usr/i586-mingw32msvc/include -c /home/user1/Projets/tmp/test2/test2App.cpp -o obj/WinRelease/test2App.o

In file included from /usr/i586-mingw32msvc/include/wx-2.8/wx/clntdata.h:17,
from /usr/i586-mingw32msvc/include/wx-2.8/wx/event.h:18,
from /usr/i586-mingw32msvc/include/wx-2.8/wx/app.h:20,
from /home/user1/Projets/tmp/test2/test2App.h:13,
from /home/user1/Projets/tmp/test2/test2App.cpp:18:
/usr/i586-mingw32msvc/include/wx-2.8/wx/hashmap.h: In member function ‘wxLongToLongHashMap_wxImplementation_HashTable::Node** wxLongToLongHashMap_wxImplementation_HashTable::GetNodePtr(const long int&) const’:
/usr/i586-mingw32msvc/include/wx-2.8/wx/hashmap.h:735: warning: dereferencing type-punned pointer will break strict-aliasing rules
In file included from /usr/i586-mingw32msvc/include/wx-2.8/wx/event.h:18,
from /usr/i586-mingw32msvc/include/wx-2.8/wx/app.h:20,
from /home/user1/Projets/tmp/test2/test2App.h:13,
from /home/user1/Projets/tmp/test2/test2App.cpp:18:
/usr/i586-mingw32msvc/include/wx-2.8/wx/clntdata.h: In member function ‘wxShadowObjectMethods_wxImplementation_HashTable::Node** wxShadowObjectMethods_wxImplementation_HashTable::GetNodePtr(const wxString&) const’:
/usr/i586-mingw32msvc/include/wx-2.8/wx/clntdata.h:20: warning: dereferencing type-punned pointer will break strict-aliasing rules
/usr/i586-mingw32msvc/include/wx-2.8/wx/clntdata.h: In member function ‘wxShadowObjectFields_wxImplementation_HashTable::Node** wxShadowObjectFields_wxImplementation_HashTable::GetNodePtr(const wxString&) const’:
/usr/i586-mingw32msvc/include/wx-2.8/wx/clntdata.h:25: warning: dereferencing type-punned pointer will break strict-aliasing rules
In file included from /usr/i586-mingw32msvc/include/wx-2.8/wx/event.h:21,
from /usr/i586-mingw32msvc/include/wx-2.8/wx/app.h:20,
from /home/user1/Projets/tmp/test2/test2App.h:13,
from /home/user1/Projets/tmp/test2/test2App.cpp:18:
/usr/i586-mingw32msvc/include/wx-2.8/wx/gdicmn.h: In member function ‘wxStringToColourHashMap_wxImplementation_HashTable::Node** wxStringToColourHashMap_wxImplementation_HashTable::GetNodePtr(const wxString&) const’:
/usr/i586-mingw32msvc/include/wx-2.8/wx/gdicmn.h:544: warning: dereferencing type-punned pointer will break strict-aliasing rules
In file included from /usr/i586-mingw32msvc/include/wx-2.8/wx/wx.h:45,
from /home/user1/Projets/tmp/test2/test2Main.h:14,
from /home/user1/Projets/tmp/test2/test2App.cpp:19:
/usr/i586-mingw32msvc/include/wx-2.8/wx/image.h: In member function ‘wxImageHistogramBase_wxImplementation_HashTable::Node** wxImageHistogramBase_wxImplementation_HashTable::GetNodePtr(const long unsigned int&) const’:
/usr/i586-mingw32msvc/include/wx-2.8/wx/image.h:136: warning: dereferencing type-punned pointer will break strict-aliasing rules
i586-mingw32msvc-g++ -Wall -I/usr/i586-mingw32msvc/lib/wx/include/i586-mingw32msvc-msw-unicode-release-static-2.8 -I/usr/i586-mingw32msvc/include/wx-2.8 -D__WXMSW__ -mthreads -O2 -I/usr/i586-mingw32msvc/lib/wx/include/i586-mingw32msvc-msw-unicode-release-static-2.8 -I/usr/i586-mingw32msvc/include/wx-2.8 -D__WXMSW__ -mthreads -I/usr/i586-mingw32msvc/include/wx-2.8 -I/usr/i586-mingw32msvc/include -c /home/user1/Projets/tmp/test2/test2Main.cpp -o obj/WinRelease/test2Main.o
In file included from /usr/i586-mingw32msvc/include/wx-2.8/wx/wx.h:21,
from /home/user1/Projets/tmp/test2/test2Main.h:14,
from /home/user1/Projets/tmp/test2/test2Main.cpp:18:
/usr/i586-mingw32msvc/include/wx-2.8/wx/hashmap.h: In member function ‘wxLongToLongHashMap_wxImplementation_HashTable::Node** wxLongToLongHashMap_wxImplementation_HashTable::GetNodePtr(const long int&) const’:
/usr/i586-mingw32msvc/include/wx-2.8/wx/hashmap.h:735: warning: dereferencing type-punned pointer will break strict-aliasing rules
In file included from /usr/i586-mingw32msvc/include/wx-2.8/wx/event.h:18,
from /usr/i586-mingw32msvc/include/wx-2.8/wx/wx.h:25,
from /home/user1/Projets/tmp/test2/test2Main.h:14,
from /home/user1/Projets/tmp/test2/test2Main.cpp:18:
/usr/i586-mingw32msvc/include/wx-2.8/wx/clntdata.h: In member function ‘wxShadowObjectMethods_wxImplementation_HashTable::Node** wxShadowObjectMethods_wxImplementation_HashTable::GetNodePtr(const wxString&) const’:
/usr/i586-mingw32msvc/include/wx-2.8/wx/clntdata.h:20: warning: dereferencing type-punned pointer will break strict-aliasing rules
/usr/i586-mingw32msvc/include/wx-2.8/wx/clntdata.h: In member function ‘wxShadowObjectFields_wxImplementation_HashTable::Node** wxShadowObjectFields_wxImplementation_HashTable::GetNodePtr(const wxString&) const’:
/usr/i586-mingw32msvc/include/wx-2.8/wx/clntdata.h:25: warning: dereferencing type-punned pointer will break strict-aliasing rules
In file included from /usr/i586-mingw32msvc/include/wx-2.8/wx/event.h:21,
from /usr/i586-mingw32msvc/include/wx-2.8/wx/wx.h:25,
from /home/user1/Projets/tmp/test2/test2Main.h:14,
from /home/user1/Projets/tmp/test2/test2Main.cpp:18:
/usr/i586-mingw32msvc/include/wx-2.8/wx/gdicmn.h: In member function ‘wxStringToColourHashMap_wxImplementation_HashTable::Node** wxStringToColourHashMap_wxImplementation_HashTable::GetNodePtr(const wxString&) const’:
/usr/i586-mingw32msvc/include/wx-2.8/wx/gdicmn.h:544: warning: dereferencing type-punned pointer will break strict-aliasing rules
In file included from /usr/i586-mingw32msvc/include/wx-2.8/wx/wx.h:45,
from /home/user1/Projets/tmp/test2/test2Main.h:14,
from /home/user1/Projets/tmp/test2/test2Main.cpp:18:
/usr/i586-mingw32msvc/include/wx-2.8/wx/image.h: In member function ‘wxImageHistogramBase_wxImplementation_HashTable::Node** wxImageHistogramBase_wxImplementation_HashTable::GetNodePtr(const long unsigned int&) const’:
/usr/i586-mingw32msvc/include/wx-2.8/wx/image.h:136: warning: dereferencing type-punned pointer will break strict-aliasing rules
i586-mingw32msvc-g++ -L/usr/i586-mingw32msvc/lib -o bin/WinRelease/test2 obj/WinRelease/test2App.o obj/WinRelease/test2Main.o -s -mthreads -Wl,–subsystem,windows -mwindows /usr/i586-mingw32msvc/lib/libwx_mswu_richtext-2.8-i586-mingw32msvc.a /usr/i586-mingw32msvc/lib/libwx_mswu_aui-2.8-i586-mingw32msvc.a /usr/i586-mingw32msvc/lib/libwx_mswu_xrc-2.8-i586-mingw32msvc.a /usr/i586-mingw32msvc/lib/libwx_mswu_qa-2.8-i586-mingw32msvc.a /usr/i586-mingw32msvc/lib/libwx_mswu_html-2.8-i586-mingw32msvc.a /usr/i586-mingw32msvc/lib/libwx_mswu_adv-2.8-i586-mingw32msvc.a /usr/i586-mingw32msvc/lib/libwx_mswu_core-2.8-i586-mingw32msvc.a /usr/i586-mingw32msvc/lib/libwx_baseu_xml-2.8-i586-mingw32msvc.a /usr/i586-mingw32msvc/lib/libwx_baseu_net-2.8-i586-mingw32msvc.a /usr/i586-mingw32msvc/lib/libwx_baseu-2.8-i586-mingw32msvc.a -lwxregexu-2.8-i586-mingw32msvc -lwxexpat-2.8-i586-mingw32msvc -lwxtiff-2.8-i586-mingw32msvc -lwxjpeg-2.8-i586-mingw32msvc -lwxpng-2.8-i586-mingw32msvc -lwxzlib-2.8-i586-mingw32msvc -lrpcrt4 -loleaut32 -lole32 -luuid -lwinspool -lwinmm -lshell32 -lcomctl32 -lcomdlg32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -I/usr/i586-mingw32msvc/lib/wx/include/i586-mingw32msvc-msw-unicode-release-static-2.8 -I/usr/i586-mingw32msvc/include/wx-2.8 -D__WXMSW__ -mthreads
Output size is 2,55 MB
Process terminated with status 0 (0 minutes, 4 seconds)
0 errors, 10 warnings

en bleu tu peux voir la compilation et en vert le linkage.
lorsque tu lance build tu dois avoir les même lignes.

pour faire tourner l’exe sous wine j’ai copier:
cp /usr/share/doc/mingw32-runtime/mingwm10.dll.gz /home/user1/.wine/drive_c/windows/system32
et gunzip mingwm10.dll.gz
puis je l’ai lancé par “wine test2” sous ~/.wine/drive_c après l’avoir copier.

ça marche bien.

si tu as des questions, n’hésite pas.

Bonsoir à Dixippe,

Ton explication m’a bien aidé cependant à la fin quand j’ai fais toutes les manipulations, j’ai encore des erreurs de compilation.

Les voici :


-------------- Build: WinRelease in test_windows ---------------

Compiling: GUIDialog.cpp
i586-mingw32msvc-g++: unrecognized option '-pthread'
In file included from /usr/include/wx-2.8/wx/platform.h:293,
                 from /usr/include/wx-2.8/wx/defs.h:21,
                 from /usr/include/wx-2.8/wx/wxprec.h:13,
                 from /home/tony/Desktop/test_windows/GUIDialog.cpp:8:
/usr/include/wx-2.8/wx/chkconf.h:1817:9: error: #error "wxClipboard requires wxDataObject"
In file included from /usr/include/wx-2.8/wx/wxprec.h:13,
                 from /home/tony/Desktop/test_windows/GUIDialog.cpp:8:
/usr/include/wx-2.8/wx/defs.h:2820: error: conflicting declaration ‘typedef struct GtkWidget* WXWidget’
/usr/include/wx-2.8/wx/defs.h:2611: error: ‘WXWidget’ has a previous declaration as ‘typedef void* WXWidget’
In file included from /usr/include/wx-2.8/wx/utils.h:21,
                 from /usr/include/wx-2.8/wx/cursor.h:41,
                 from /usr/include/wx-2.8/wx/event.h:22,
                 from /usr/include/wx-2.8/wx/wx.h:25,
                 from /home/tony/Desktop/test_windows/GUIDialog.cpp:15:
/usr/include/wx-2.8/wx/filefn.h:398: error: zero width for bit-field ‘wxAssert_399::BadFileSizeType’
In file included from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sql.h:13,
                 from /usr/include/wx-2.8/wx/db.h:82,
                 from /usr/include/wx-2.8/wx/variant.h:30,
                 from /usr/include/wx-2.8/wx/icon.h:47,
                 from /usr/i586-mingw32msvc/include/wx-2.8/wx/msw/app.h:16,
                 from /usr/include/wx-2.8/wx/app.h:562,
                 from /usr/include/wx-2.8/wx/wx.h:26,
                 from /home/tony/Desktop/test_windows/GUIDialog.cpp:15:
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:17: error: ‘ULONG’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:18: error: ‘USHORT’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:24: error: ‘PVOID’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:25: error: ‘PVOID’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:26: error: ‘PVOID’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:27: error: ‘PVOID’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:29: error: ‘UCHAR’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:34: error: ‘UDWORD’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:36: error: ‘UWORD’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:37: error: ‘PVOID’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:50: error: ‘HWND’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:51: error: ‘ULONG’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:90: error: ‘SQLUSMALLINT’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:91: error: ‘SQLUSMALLINT’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:94: error: ‘SQLUSMALLINT’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:95: error: ‘SQLUSMALLINT’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:96: error: ‘SQLUSMALLINT’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:100: error: ‘SQLUSMALLINT’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:101: error: ‘SQLUSMALLINT’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:102: error: ‘SQLUSMALLINT’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:103: error: ‘SQLUSMALLINT’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:104: error: ‘SQLUSMALLINT’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:105: error: ‘SQLUINTEGER’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:118: error: ‘SQLUINTEGER’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:119: error: ‘SQLUINTEGER’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:122: error: ‘SQLUINTEGER’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:123: error: ‘SQLUINTEGER’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:124: error: ‘SQLUINTEGER’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:125: error: ‘SQLUINTEGER’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:126: error: ‘SQLUINTEGER’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:138: error: ‘SQLCHAR’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:140: error: ‘SQLCHAR’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:141: error: ‘SQLCHAR’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:154: error: ‘DWORD’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:155: error: ‘WORD’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:156: error: ‘WORD’ does not name a type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sqltypes.h:157: error: ‘BYTE’ does not name a type
In file included from /usr/include/wx-2.8/wx/db.h:82,
                 from /usr/include/wx-2.8/wx/variant.h:30,
                 from /usr/include/wx-2.8/wx/icon.h:47,
                 from /usr/i586-mingw32msvc/include/wx-2.8/wx/msw/app.h:16,
                 from /usr/include/wx-2.8/wx/app.h:562,
                 from /usr/include/wx-2.8/wx/wx.h:26,
                 from /home/tony/Desktop/test_windows/GUIDialog.cpp:15:
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sql.h:346: error: ‘SQLUSMALLINT’ has not been declared
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sql.h:346: error: ‘SQLPOINTER’ has not been declared
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sql.h:348: error: ‘SQLCHAR’ has not been declared
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sql.h:348: error: ‘SQLCHAR’ has not been declared
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sql.h:348: error: ‘SQLCHAR’ has not been declared
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sql.h:349: error: ‘SQLUSMALLINT’ has not been declared
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sql.h:349: error: ‘SQLCHAR’ has not been declared
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sql.h:349: error: ‘SQLUINTEGER’ has not been declared
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/sql.h:351: error: ‘SQLCHAR’ has not been declared
Process terminated with status 1 (0 minutes, 5 seconds)
50 errors, 0 warnings
 

J’ai le souvenir d’avoir déjà eu une erreur concernant le fichier sql.h et dont j’ai pu résoudre le probleme en installant le paquet : unix-OBDC

C’est peut-être du à sa, mais je ne suis pas sûr et je ne vois pas du tout comment résoudre cela.

Voila, merci encore beaucoup !

Bonsoir Ttran,

Il me semble qu’il y a un problème avec le path :usr/include/wx-2.8, ce n’est pas le bon.

Je te redonne ma configue:

[color=#800040]test étant le nom de mon projet sur la gauche de la fenêtre codeblock.

Depuis: test->clic droit ->properties

onglet "Build targets"
delete Debug
selection Release:

…Type: Console application
…Output filename: bin/WinRelease/test1
…Objects output dir: obj/WinRelease

à partir de l’onglet “Project settings”

clic en bas à droite sur “Project’s build options”

sous “Selected compiler” choix:“Win cross compile”

onglet “Compiler settings” sous onglet “Other options”:
wx-config --host=i586-mingw32msvc --static --cflags

onglet “Linker settings” sous onglet “Other linker options”:
wx-config --host=i586-mingw32msvc --static --libs

onglet “Search directories”
…sous onglet “Compiler”:
…/usr/i586-mingw32msvc/include/wx-2.8
…/usr/i586-mingw32msvc/include
…sous onglet “Linker”
…/usr/i586-mingw32msvc/lib
…/usr/i586-mingw32msvc/lib/wx
…sous onglet “Resource compiler”
…/usr/i586-mingw32msvc/include/wx-2.8
…/usr/i586-mingw32msvc/include

Depuis menu principale: Settings->compiler and debugger
dans la fenêtre sous “Selected compiler” choisir "Win cross compile"
dans l’onglet “Toolchain executables”
…sous onglet “Program Files”
…C compiler: i586-mingw32msvc-gcc
…C++ compiler: i586-mingw32msvc-g++
…Linker for dyna… : i586-mingw32msvc-g++
…Linker for static : i586-mingw32msvc-ar

…sous onglet “Additional Paths”:
…/usr/i586-mingw32msvc/bin
…/usr/bin
[/color]

En ouvrant mon projet ce soir j’ai perdu la configuration , j’ai tout refait. Je ne sais pas si c’est un bug de
codeblock ou c’est parce que j’ai essayé de lui faire avaler tout le noyau 2.2.26 et que j’ai dû le killer.

Je te donne une autre solution, j’ai construit un makefile avec les traces de codeblock donc:
Sous ton projet où il y a les .cpp et .h, tu crées un fichier Makefile avec cela dedans:

[code]CCPATHMINGW32= /usr/bin/
LIBPATHMINGW32= /usr/i586-mingw32msvc/lib/
TOOLCHAIN = $(HOME)/toolchain

INCLUDE0= -I/usr/i586-mingw32msvc/lib/wx/include/i586-mingw32msvc-msw-unicode-release-static-2.8
INCLUDE1= $(INCLUDE0) -I/usr/i586-mingw32msvc/include/wx-2.8
INCLUDECPP= $(INCLUDE1) -I/usr/i586-mingw32msvc/include

INCLUDELD1= -I/usr/i586-mingw32msvc/lib/wx/include/i586-mingw32msvc-msw-unicode-release-static-2.8
INCLUDELD= $(INCLUDELD1) -I/usr/i586-mingw32msvc/include/wx-2.8

LIB0= $(LIBPATHMINGW32)libwx_mswu_richtext-2.8-i586-mingw32msvc.a
LIB1= $(LIB0) $(LIBPATHMINGW32)libwx_mswu_aui-2.8-i586-mingw32msvc.a
LIB2= $(LIB1) $(LIBPATHMINGW32)libwx_mswu_xrc-2.8-i586-mingw32msvc.a
LIB3= $(LIB2) $(LIBPATHMINGW32)libwx_mswu_qa-2.8-i586-mingw32msvc.a
LIB4= $(LIB3) $(LIBPATHMINGW32)libwx_mswu_html-2.8-i586-mingw32msvc.a
LIB5= $(LIB4) $(LIBPATHMINGW32)libwx_mswu_adv-2.8-i586-mingw32msvc.a
LIB6= $(LIB5) $(LIBPATHMINGW32)libwx_mswu_core-2.8-i586-mingw32msvc.a
LIB7= $(LIB6) $(LIBPATHMINGW32)libwx_baseu_xml-2.8-i586-mingw32msvc.a
LIB8= $(LIB7) $(LIBPATHMINGW32)libwx_baseu_net-2.8-i586-mingw32msvc.a
LIB9= $(LIB8) $(LIBPATHMINGW32)libwx_baseu-2.8-i586-mingw32msvc.a

LIB10= $(LIB9) -lwxregexu-2.8-i586-mingw32msvc -lwxexpat-2.8-i586-mingw32msvc
LIB11= $(LIB10) -lwxtiff-2.8-i586-mingw32msvc -lwxjpeg-2.8-i586-mingw32msvc
LIB12= $(LIB11) -lwxpng-2.8-i586-mingw32msvc -lwxzlib-2.8-i586-mingw32msvc
LIB13= $(LIB12) -lrpcrt4 -loleaut32 -lole32 -luuid -lwinspool -lwinmm -lshell32
LIBMINGW32= $(LIB13) -lcomctl32 -lcomdlg32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32

MINGW32G++ = $(CCPATHMINGW32)i586-mingw32msvc-g++

CPP= $(CROSS_COMPILE)i586-mingw32msvc-g++
LDFLAGS= -L/usr/i586-mingw32msvc/lib -s -mthreads -Wl,–subsystem,windows -mwindows -D__WXMSW__ -mthreads
CPPFLAGS= -Wall -D__WXMSW__ -mthreads -O2

NAME = output
NAMEXE = $(NAME).exe

SRCEXE = $(wildcard *.cpp)
OBJEXE = $(SRCEXE:.cpp=.o)
HEADER = $(wildcard *.h)

EXE = $(NAMEXE)

all: $(EXE)

$(EXE): $(OBJEXE)
@$(CPP) $(LDFLAGS) -o $@ $^ $(LIBMINGW32) $(INCLUDELD)

$(OBJEXE): $(HEADER)

%.o: %.cpp
@$(CPP) -o $@ -c $< $(CPPFLAGS) $(INCLUDECPP)

.PHONY: clean

copy:

cp $(EXE) $(HOME)/nfs/

clean:
@rm -f *.exe *.o *.a

install:
@echo “Nothing to do”

[/code]

un copier coller devrait suffire et dans une fenêtre shell tu fais “make”.

Chez moi ça marche. le fichier de sortie a pour nom le contenu de la variable NAMEXE soit ici output.exe .

tiens moi au courant.

J’ai simplifié le Makefile:

CCPATHMINGW32= /usr/bin/
LIBPATHMINGW32= /usr/i586-mingw32msvc/lib/

INCLUDE=`wx-config --host=i586-mingw32msvc --static --cflags`
LIBMINGW32=` wx-config --host=i586-mingw32msvc --static --libs`

MINGW32G++ = $(CCPATHMINGW32)i586-mingw32msvc-g++

CPP= $(CROSS_COMPILE)i586-mingw32msvc-g++
LDFLAGS= -L/usr/i586-mingw32msvc/lib -s -mthreads -Wl,--subsystem,windows -mwindows -D__WXMSW__ -mthreads
CPPFLAGS= -Wall -D__WXMSW__ -mthreads -O2

NAME = output
NAMEXE = $(NAME).exe

SRCEXE = $(wildcard *.cpp)
OBJEXE = $(SRCEXE:.cpp=.o)
HEADER = $(wildcard *.h)

EXE = $(NAMEXE)

all: $(EXE)

$(EXE): $(OBJEXE)
	@$(CPP) $(LDFLAGS) -o $@ $^ $(LIBMINGW32) $(INCLUDE)


$(OBJEXE): $(HEADER)

%.o: %.cpp
	@$(CPP) -o $@ -c $< $(CPPFLAGS) $(INCLUDE)

.PHONY: clean

copy:
#	cp $(EXE) $(HOME)/nfs/

clean:
	@rm -f *.exe *.o *.a

install:
	@echo "Nothing to do"

:wink:

Merci la méthode avec le Makefile fonctionne j’ai quelque warning mais l’exécutable est bien fait.

Je te remercie :smiley:

Une dernière question, si je veux rajouter une autre bibliothèque comme par exemple openCV comment dois-je procéder avec le Makefile ?

Attention ta lib doit être cross compilée windows.

En fait il y a 2 types de lib, statique libxxx.a ou dynamique libxxx.so

Comme dans notre cas c’est du statique, pour ajouter une lib statique qui s’appelle libtoto.a

tu ajoutes dans le Makefile:
LIBTOTO= -ltoto
si t’as lib est dans un chemin particulier ex: /usr/chemin_lib, tu mets:
LIBTOTO= -L/usr/chemin_lib -ltoto

ou alors:
LIBTOTO= /usr/chemin_lib/libtoto.a

et plus loin:
$(EXE): $(OBJEXE)
@$(CPP) $(LDFLAGS) -o $@ $^ $(LIBMINGW32) $(INCLUDE) $(LIBTOTO)

Avec les libs il y a aussi les headers toto.h, tu dois fournir le chemin:
INCLUDETOTO= -I/usr/chemin_headers

et plus loin
%.o: %.cpp
@$(CPP) -o $@ -c $< $(CPPFLAGS) $(INCLUDECPP) $(INCLUDETOTO)

si j’ai pas fait d’erreur …

Autre précision:
il est tout a fait possible avec un Makefile de lancer la compile à partir de codeblock:

sous “Projects” à gauche, sur ton projet clic droit -> “properties”

sous l’onglet “Project settings” cocher “This is a custom Makefile”

click en bas à droite “Project’s build options…” ou si tu n’as pas l’onglet clic droit projet -> “Build options”

dans la fenêtre qui s’ouvre choisir l’onglet ‘“Make” commands’

efface $target sous “Build project/target” (donc devient = “$make -f $makefile”)
(ou si tu veux garder $target il faut mettre Release, Debug ou ce que tu as défini dans le Makefile.)

maintenant quand tu build dans codeblock, les résultats de “make” apparaissent dans les fenêtres basses (log…) de codeblock

Bon codage. :smiley:

Bonsoir

Une fois encore merci ! Explication claire et précise.

Cependant quand tu dis :

Si par exemple je veux utiliser la bibliotheque openCV qui permet de recuperer un flux vidéo d’une caméra USB. J’aimerai cependant le codé sous linux .

Quel est la procédure à suivre?

Merci d’avance.

Je ne sais rien d’openCV,
Dés que possible j’essaie… patience. :smt024

Bonjour Ttran,

Voilà le résultat pour OpenCV:

tu télé-charges la version windob$ de OpenCV à ce jour: OpenCV-2.0.0a-win32.exe
tu le copies sous ~/.wine/drive_c et tu l’installes en faisant “wine OpenCV-2.0.0a-win32.exe”.

ensuite tu te retrouves avec un dossier OpenCV2.0.

sous ce dossier et en root:
tu copies le contenu de lib sous /usr/i586-mingw32msvc/lib.
“cp lib/* /usr/i586-mingw32msvc/lib”

tu copies le dossier include/opencv sous /usr/i586-mingw32msvc/include
"cp -r include/opencv /usr/i586-mingw32msvc/include"

donc maintenant sous /usr/i586-mingw32msvc/lib tu dois avoir en plus:
libcv200.dll.a libcxcore200.dll.a libhighgui200.dll.a
libcvaux200.dll.a libcxts200.dll.a libml200.dll.a

et sous /usr/i586-mingw32msvc/include un dossier opencv qui contient:
cvaux.h cv.hpp cvwimage.h cxflann.h cxtypes.h
cvaux.hpp cvtypes.h cxcore.h cxmat.hpp highgui.h
cvcompat.h cvver.h cxcore.hpp cxmisc.h highgui.hpp
cv.h cvvidsurv.hpp cxerror.h cxoperations.hpp ml.h

voilà c’est fait!

J’ai compilé l’exemple contour.c qui se trouve sous ~/.wine/drive_c/samples/c

j’ai fait un Makefile:

CCPATHMINGW32= /usr/bin/
LIBPATHMINGW32= /usr/i586-mingw32msvc/lib/

INCLUDEOPENCV=-I/usr/i586-mingw32msvc/include/opencv
LIBOPENCV= -lcv200.dll -lcvaux200.dll -lcxcore200.dll -lcxts200.dll -lhighgui200.dll -lml200.dll

MINGW32G++ = $(CCPATHMINGW32)i586-mingw32msvc-g++

CPP= $(CROSS_COMPILE)i586-mingw32msvc-g++
LDFLAGS= -L/usr/i586-mingw32msvc/lib 
CPPFLAGS= -Wall -O2

NAME = contours
NAMEXE = $(NAME).exe

SRCEXE = $(NAME).c
OBJEXE = $(NAME).o

EXE = $(NAMEXE)

all: $(EXE)

$(EXE): $(OBJEXE)
	@$(CPP) $(LDFLAGS) -o $@ $^ $(LIBMINGW32) $(LIBOPENCV)

$(OBJEXE): $(HEADER)

%.o: %.c
	@$(CPP) -o $@ -c $< $(CPPFLAGS) $(INCLUDE) $(INCLUDEOPENCV) 

%.o: %.cpp
	@$(CPP) -o $@ -c $< $(CPPFLAGS) $(INCLUDE) $(INCLUDEOPENCV) 

.PHONY: clean

copy:
#	cp $(EXE) $(HOME)/nfs/

clean:
	@rm -f *.exe *.o *.a

install:
	@echo "Nothing to do"

(NAME = contours) indique le fichier à compiler.

je ne l’ai pas fusionné avec le Makefile pour wxwidget décrit plus haut car je suis
passé en debian pour amd64 et je n’ai pas réinstallé wxwidget. Si tu as des problèmes
pour fusionner wxwidget et opencv, je le ferais.

pour lancer contour.exe il faut que les DLL de opencv sous ~/.wine/drive_c/OpenCV2.0/bin/
soient dans le path de wine ou alors là ou tu lances “wine contour.exe”