-
Notifications
You must be signed in to change notification settings - Fork 0
/
Code_Blocks_How_config_free_compilers_windows_11.txt
2554 lines (2365 loc) · 115 KB
/
Code_Blocks_How_config_free_compilers_windows_11.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Code::Blocks : the best and great free IDE
Tutorial : How config all free C/C++ compilers (32bits or 64bits) on Windows 11 64 bits with Code::Blocks.
Tout d'abord, il peut y avoir une détection automatique de certains compilateurs installés lors du lancement de Code::Blocks.
C'est un plus indéniable, mais parfois il faut un "peu" forcer les configurations des compilateurs dans cet outil.
Ce qui suit permet donc d'obtenir une configuration opérationnelle pour chaque compilateur [pré]installé sur un Windows 11 64 bits.
A) GNU GCC Compiler C/C++/ObjC lié à la distibution Mingw32 officielle (version gcc 9.2.0) :
Celui de la version officielle site Web de Sourceforge :
https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe
Prérequis : On installe MingW32 sur le répertoire proposé par défaut : C:\MingW, avec un compilateur GCC 32 bits
Toolchain executables :
C:\MinGW (puis répertoire \bin automatiquement recherché)
compilateur C : gcc.exe
compilateur C++ : g++.exe
linker for dynamic lib : g++.exe
linker for static lib : ar.exe
debugger : gdb.exe
resource compiler : windres.exe
make program : mingw32-make.exe
Search directories :
a) compiler : C:\MinGW\include
b) linker : C:\MinGW\lib
a) resource compiler : C:\MinGW\include
Affichage de la commande : "g++.exe -v" ->
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/9.2.0/lto-wrapper.exe
Target: mingw32
Configured with: ../src/gcc-9.2.0/configure --build=x86_64-pc-linux-gnu --host=mingw32 --target=mingw32 --disable-win32-registry --with-arch=i586
--with-tune=generic --enable-static --enable-shared --enable-threads --enable-languages=c,c++,objc,obj-c++,fortran,ada --with-dwarf2 --disable-sjlj-exceptions
--enable-version-specific-runtime-libs --enable-libgomp --disable-libvtv --with-libiconv-prefix=/mingw --with-libintl-prefix=/mingw --enable-libstdcxx-debug
--disable-build-format-warnings --prefix=/mingw --with-gmp=/mingw --with-mpfr=/mingw --with-mpc=/mingw --with-isl=/mingw --enable-nls --with-pkgversion='MinGW.org GCC Build-2'
Thread model: win32
gcc version 9.2.0 (MinGW.org GCC Build-2)
Tests :
a) test n° 1 :
Un programme C standard tout simple, projet stocké sous C:\src\EssaiC\EssaiC.cbp
source sous C:\src\EssaiC\EssaiC.c
Deux configurations utilisées : "Debug Mingw32 official" et "Release Mingw32 official"
Ok, ca fonctionne avec le compilateur MingW officiel.
b) test n° 2 :
Un programme C++ standard tout simple, projet stocké sous C:\src\EssaiCpp\EssaiCpp.cbp
source sous C:\src\EssaiCpp\main.cpp
Deux configurations utilisées : "Debug Mingw32 official" et "Release Mingw32 official"
Ok, ca fonctionne avec le compilateur MingW officiel.
B) GNU GCC Compiler Mingw64 CB (+ version GCC/mingw64 -> 11.2.0, version 64 bits)
Celui de la version officielle site Web de Sourceforge (incluant un compilateur GCC avec MingW) :
https://sourceforge.net/projects/codeblocks/files/Binaries/20.03/Windows/codeblocks-20.03mingw-setup.exe
Il faut procéder à l'installation de Code::Blocks version 20.03 intégrant Mingw, mais avec une mise à jour de GCC en 64 bits.
Cette mise à jour provient du site MINGW64 et le fichier à télécharger se denomme : mingw-18.0-without-git.exe.
Il faut choisir comme répertoire d'installation C:\CodeBlocks
On installe ainsi l'IDE Code::Blocks + un compilateur GCC 64 bits sur le répertoire C:\CodeBlocks
Puis, dans Code::Blocks, il faut modifier la configuration du nouveau compilateur dans le menu "Settings" puis "Compiler".
On procède alors à une copie du "nom du compilateur" référencé par défaut (GCC de Mingw), et on le renomme en indiquant
par exemple "GNU GCC Compiler CB"
Toolchain executables
C:\CodeBlocks\MinGW (puis répertoire \bin recherché automatiquement)
compilateur C : gcc.exe
compilateur C++ : g++.exe
linker for dynamic lib : g++.exe
linker for static lib : ar.exe
debugger : gdb.exe
resource compiler : windres.exe
make program : mingw32-make.exe
Search directories :
a) compiler : C:\CodeBlocks\MinGW\x86_64-w64-mingw32\include
b) linker : C:\CodeBlocks\MinGW\x86_64-w64-mingw32\lib puis C:\Program Files\CodeBlocks\MinGW\lib
a) resource compiler : C:\CodeBlocks\MinGW\x86_64-w64-mingw32\include
Affichage de la commande : "g++.exe -v" ->
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=c:/codeblocks/mingw/bin/../libexec/gcc/x86_64-w64-mingw32/11.2.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../src/configure --enable-languages=c,c++ --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32
--disable-multilib --prefix=/c/temp/gcc/dest --with-sysroot=/c/temp/gcc/dest --disable-libstdcxx-pch --disable-libstdcxx-verbose --disable-nls
--disable-shared --disable-win32-registry --enable-threads=posix --enable-libgomp --with-zstd=/c/mingw --disable-bootstrap
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.2.0 (GCC)
Tests :
a) test n° 1 :
Un programme C standard tout simple, projet stocké sous C:\src\EssaiC\EssaiC.cbp
source sous C:\src\EssaiC\EssaiC.c
Deux configurations utilisées : "Debug Mingw32 CB" et "Release MingW32 CB"
Ok, ca fonctionne avec le compilateur MingW de l'installation par défaut.
b) test n° 2 :
Un programme C++ standard tout simple, projet stocké sous C:\src\EssaiCpp\EssaiCpp.cbp
source sous C:\src\EssaiCpp\main.cpp
Deux configurations utilisées : "Debug Mingw32 CB" et "Release MingW32 CB"
Ok, ca fonctionne avec le compilateur MingW de l'installation par défaut.
C) Red Panda Dev-Cpp (version gcc 10.3.0) (64 bits)
L'outil Dev-Cpp n'étant plus maintenu depuis 2016, je me suis tourné vers la version repackagé de cet outil daté de 2022.
La version officielle site Web de SourceForge : https://sourceforge.net/projects/redpanda-cpp/files/2.1.0/RedPanda.C++.2.10.win64.MinGW-w64.X86_64.GCC.11.2.Setup.exe
on installe ainsi "Red Panda" Dev-Cpp sur le répertoire par défaut C:\RedPanda-Cpp avec une version de GCC 64 bits, version 11.2
Toolchain executables :
C:\RedPanda-Cpp\MinGW64 (puis répertoire \bin )
compilateur C : gcc.exe
compilateur C++ : g++.exe
linker for dynamic lib : g++.exe
linker for static lib : gcc-ar.exe
debugger : gdb.exe
resource compiler : windres.exe
make program : mingw32-make.exe
Search directories :
a) compiler : C:\RedPanda-Cpp\MinGW64\x86_64-w64-mingw32\include
b) linker : C:\RedPanda-Cpp\MinGW64\x86_64-w64-mingw32\lib
a) resource compiler : C:\RedPanda-Cpp\MinGW64\x86_64-w64-mingw32\include
Affichage de la commande : g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=C:/Program\ Files/RedPanda-Cpp/MinGW64/bin/../libexec/gcc/x86_64-w64-mingw32/11.2.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../src/gcc-11.2.0/configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32
--prefix=/mingw64 --with-sysroot=/d/a/mingw-builds/mingw-builds/buildroot/x86_64-1120-posix-seh-rt_v9-rev1/mingw64 --enable-host-shared
--disable-multilib --enable-languages=c,c++,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic
--enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs
--enable-libstdcxx-filesystem-ts=yes --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath
--disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=nocona
--with-tune=core2 --with-libiconv --with-system-zlib --with-gmp=/d/a/mingw-builds/mingw-builds/buildroot/prerequisites/x86_64-w64-mingw32-static
--with-mpfr=/d/a/mingw-builds/mingw-builds/buildroot/prerequisites/x86_64-w64-mingw32-static
--with-mpc=/d/a/mingw-builds/mingw-builds/buildroot/prerequisites/x86_64-w64-mingw32-static
--with-isl=/d/a/mingw-builds/mingw-builds/buildroot/prerequisites/x86_64-w64-mingw32-static
--with-pkgversion='x86_64-posix-seh-rev1, Built by MinGW-W64 project' --with-bugurl=https://sourceforge.net/projects/mingw-w64
CFLAGS='-O2 -pipe -fno-ident -I/d/a/mingw-builds/mingw-builds/buildroot/x86_64-1120-posix-seh-rt_v9-rev1/mingw64/opt/include
-I/d/a/mingw-builds/mingw-builds/buildroot/prerequisites/x86_64-zlib-static/include
-I/d/a/mingw-builds/mingw-builds/buildroot/prerequisites/x86_64-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident
-I/d/a/mingw-builds/mingw-builds/buildroot/x86_64-1120-posix-seh-rt_v9-rev1/mingw64/opt/include
-I/d/a/mingw-builds/mingw-builds/buildroot/prerequisites/x86_64-zlib-static/include
-I/d/a/mingw-builds/mingw-builds/buildroot/prerequisites/x86_64-w64-mingw32-static/include'
CPPFLAGS=' -I/d/a/mingw-builds/mingw-builds/buildroot/x86_64-1120-posix-seh-rt_v9-rev1/mingw64/opt/include
-I/d/a/mingw-builds/mingw-builds/buildroot/prerequisites/x86_64-zlib-static/include
-I/d/a/mingw-builds/mingw-builds/buildroot/prerequisites/x86_64-w64-mingw32-static/include' LDFLAGS='-pipe -fno-ident
-L/d/a/mingw-builds/mingw-builds/buildroot/x86_64-1120-posix-seh-rt_v9-rev1/mingw64/opt/lib
-L/d/a/mingw-builds/mingw-builds/buildroot/prerequisites/x86_64-zlib-static/lib
-L/d/a/mingw-builds/mingw-builds/buildroot/prerequisites/x86_64-w64-mingw32-static/lib
' LD_FOR_TARGET=/d/a/mingw-builds/mingw-builds/buildroot/x86_64-1120-posix-seh-rt_v9-rev1/mingw64/bin/ld.exe --with-boot-ldflags=' -Wl,--disable-dynamicbase
-static-libstdc++ -static-libgcc'
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 11.2.0 (x86_64-posix-seh-rev1, Built by MinGW-W64 project)
Tests :
a) test n° 1 :
Un programme C standard tout simple, projet stocké sous C:\src\EssaiC\EssaiC.cbp
source sous C:\src\EssaiC\EssaiC.c
Deux configurations utilisées : "Debug Mingw32 Dev-Cpp" et "Release Mingw32 Dev-Cpp"
Ok, ca fonctionne avec le compilateur TDM GCC de Dev-Cpp.
b) test n° 2 :
Un programme C++ standard tout simple, projet stocké sous C:\src\EssaiCpp\EssaiCpp.cbp
source sous C:\src\EssaiCpp\main.cpp
Deux configurations utilisées : "Debug Mingw32 Dev-Cpp" et "Release Mingw32 Dev-Cpp"
Ok, ca fonctionne avec le compilateur MingW de Dev-Cpp.
D) CYGWIN64 (version setup 2.918 64 bits avec les compilateurs gcc 32 bits et 64 bits, version GCC 11.3)
Celui de la version officielle site Web : https://cygwin.com/index.html
Il faut telecharger l'utilitaire d'installation setup-x86_64.exe, qui sert aussi d'utilitaire de mise à jour (lui même mise à jour fréquemment).
La version la plus récente de la DLL Cygwin (Cygwin1.dll obligatoire pour le lancement d'un exécutable généré sous CYGWIN) est la 3.2.0.
Prérequis : on installe CYGWIN64 sur le répertoire proposé par défaut : C:\cygwin64, avec les deux compilateurs GCC récents (version x86 et X64).
Ces deux compilateurs sont configurés sous Code::Blocks, j'ai renommé le deuxième compilateur en "Cygwin GCC 64"
au niveau du menu "Settings" puis "Compiler"
Toolchain executables :
C:\cygwin64 (puis répertoire \bin )
compilateur C : gcc.exe
compilateur C++ : g++.exe
linker for dynamic lib : g++.exe (idem)
linker for static lib : ar.exe
debugger : gdb.exe
resource compiler : windres.exe
make program : make.exe (penser à l'installer avec l'outil setup-x86_64.exe !)
Search directories :
a) compiler : C:\cygwin64\usr\include\w32api
b) linker : C:\cygwin\usr\x86_64-pc-cygwin\sys-root\usr\lib\w32api et/ou C:\cygwin\usr\x86_64-pc-cygwin\sys-root\usr\lib
a) resource compiler : C:\cygwin\usr\x86_64-pc-cygwin\sys-root\usr\include\w32api et/ou C:\cygwin\usr\x86_64-pc-cygwin\sys-root\usr\include
Affichage de la commande : "g++.exe -v" ->
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-cygwin/11/lto-wrapper.exe
Target: x86_64-pc-cygwin
Configured with: /mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-11.3.0/configure --srcdir=/mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-11.3.0 --prefix=/usr
--exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --docdir=/usr/share/doc/gcc --htmldir=/usr/share/doc/gcc/html -C --build=x86_64-pc-cygwin
--host=x86_64-pc-cygwin --target=x86_64-pc-cygwin --without-libiconv-prefix --without-libintl-prefix --libexecdir=/usr/lib --with-gcc-major-version-only
--enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --enable-bootstrap --enable-__cxa_atexit --with-dwarf2
--with-tune=generic --disable-bootstrap --enable-languages=c,c++,fortran,lto,objc,obj-c++,jit --enable-graphite --enable-threads=posix --enable-libatomic
--enable-libgomp --enable-libquadmath --enable-libquadmath-support --disable-libssp --enable-libada --disable-symvers --with-gnu-ld --with-gnu-as
--with-cloog-include=/usr/include/cloog-isl --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id
--with-default-libstdcxx-abi=gcc4-compatible --enable-libstdcxx-filesystem-ts
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.3.0 (GCC)
Affichage de la commande : "i686-w64-mingw32-g++.exe -v" -> (pour mémoire)
Using built-in specs.
COLLECT_GCC=i686-w64-mingw32-g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-w64-mingw32/11/lto-wrapper.exe
Target: i686-w64-mingw32
Configured with: /mnt/share/cygpkgs/mingw64-i686-gcc/mingw64-i686-gcc.x86_64/src/gcc-11.3.0/configure --srcdir=/mnt/share/cygpkgs/mingw64-i686-gcc/mingw64-i686-gcc.x86_64/src/gcc-11.3.0
--prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --docdir=/usr/share/doc/mingw64-i686-gcc --htmldir=/usr/share/doc/mingw64-i686-gcc/html
-C --build=x86_64-pc-cygwin --host=x86_64-pc-cygwin --target=i686-w64-mingw32 --without-libiconv-prefix --without-libintl-prefix --with-sysroot=/usr/i686-w64-mingw32/sys-root
--with-build-sysroot=/usr/i686-w64-mingw32/sys-root --disable-multilib --disable-win32-registry --enable-languages=c,c++,fortran,lto,objc,obj-c++
--enable-fully-dynamic-string --enable-graphite --enable-libgomp --enable-libquadmath --enable-libquadmath-support --enable-libssp --enable-version-specific-runtime-libs --with-dwarf2
--with-gnu-ld --with-gnu-as --with-gcc-major-version-only --with-tune=generic --with-cloog-include=/usr/include/cloog-isl --with-system-zlib --enable-threads=posix --libexecdir=/usr/lib
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.3.0 (GCC)
Tests :
a) test n° 1 :
Un programme C standard tout simple, projet stocké sous C:\src\EssaiC\EssaiC.cbp
source sous C:\src\EssaiC\EssaiC.c
Deux configurations utilisées : "Debug CYGWIN" et "Release CYGWIN"
Ok, ca fonctionne avec le compilateur CYGWIN (mais attention, il réinstalle à chaque "setup" cygwin1.dll sous C:\Windows\system32)
b) test n° 2 :
Un programme C++ standard tout simple, projet stocké sous C:\src\EssaiCpp\EssaiCpp.cbp
source sous C:\src\EssaiCpp\main.cpp
Deux configurations utilisées : "Debug CYGWIN" et "Release CYGWIN"
Attention : il manque l'accès à la DLL "cygwin1.dll" => A rajouter dans le PATH sous C:\windows\sysWOW64
Ok, ca fonctionne avec le compilateur CYGWIN (attention, il réinstalle à chaque "setup" cygwin1.dll sous C:\Windows\system32)
Attention : Avec la version GCC 32 bits de CYGWIN, il manque l'accès à la DLL "cygwin1.dll" quand on lance l'exécutable généré.
Trois solutions :
- Soit copier la version "ad hoc" de cygwin1.dll (version 32 bits) sous C:\Windows\SysWOW64
- Soit mettre un accès à cette DLL (32 bits) dans le PATH (modification de la variable PATH)
- Soit indiquer cette library "cygwin1.dll" dans la liste des DLL avec il faut linker le programme et regenérer l'exécutable.
E) Installation d'une version de MINGW32 "packagée" Winlibs (version GCC 12.2.0 32 bits)
Pour mémoire, j'ai installé la version officielle de Mingw32 avec l'exécutable "mingw-get-setup.exe" sur C:\MingW
Et, j'ai installé un environnement Mingw32 avec la récupération d'un fichier zip disponible sur : https://winlibs.com/
Cette archive a pour nom : winlibs-i686-posix-dwarf-gcc-12.2.0-llvm-15.0.7-mingw-w64ucrt-10.0.0-r4.7z, je la décompresse sur
le répertoire C:\mingw32 (j'ai lu quelque part qu'il fallait conserver ce nom de répertoire), avec une version ucrt.
On a ainsi installé les dernières versions "packagées" de GCC 12.2.0 + MinGW-w64 9.0.0 + (+ LLVM/Clang/LLD/LLDB llvm-15.0.7)
Toolchain executables :
C:\mingw32 (puis répertoire \bin)
compilateur C : gcc.exe
compilateur C++ : g++.exe
linker for dynamic lib : g++.exe
linker for static lib : ar.exe
debugger : gdb.exe
resource compiler : windres.exe
make program : mingw32-make
Search directories :
a) compiler : C:\mingw32\i686-w64-mingw32\include
b) linker : C:\mingw32\i686-w64-mingw32\lib
a) resource compiler : C:\mingw32\i686-w64-mingw32\include
Résultat de la commande "gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/mingw32/bin/../libexec/gcc/i686-w64-mingw32/12.2.0/lto-wrapper.exe
OFFLOAD_TARGET_NAMES=nvptx-none
Target: i686-w64-mingw32
Configured with: ../configure --prefix=/r/winlibs32ucrt_stage/31300.gcc/inst_gcc-12.2.0/share/gcc --build=i686-w64-mingw32 --host=i686-w64-mingw32
--enable-offload-targets=nvptx-none --with-pkgversion='MinGW-W64 i686-ucrt-posix-dwarf, built by Brecht Sanders' --with-tune=generic --enable-checking=release
--enable-threads=posix --with-dwarf2 --disable-sjlj-exceptions --disable-libunwind-exceptions --disable-serial-configure --disable-bootstrap
--enable-host-shared --enable-plugin --disable-default-ssp --disable-rpath --disable-libstdcxx-debug --disable-version-specific-runtime-libs
--with-stabs --disable-symvers --enable-languages=c,c++,fortran,lto,objc,obj-c++,jit --disable-gold --disable-nls --disable-stage1-checking
--disable-win32-registry --disable-multilib --enable-ld --enable-libquadmath --enable-libada --enable-libssp --enable-libstdcxx --enable-lto
--enable-fully-dynamic-string --enable-libgomp --enable-graphite --enable-mingw-wildcard --enable-libstdcxx-time --enable-libstdcxx-pch
--with-mpc=/d/Prog/winlibs32ucrt_stage/custombuilt --with-mpfr=/d/Prog/winlibs32ucrt_stage/custombuilt --with-gmp=/d/Prog/winlibs32ucrt_stage/custombuilt
--with-isl=/d/Prog/winlibs32ucrt_stage/custombuilt --enable-large-address-aware --enable-libstdcxx-backtrace --enable-install-libiberty --enable-__cxa_atexit
--without-included-gettext --with-diagnostics-color=auto --enable-clocale=generic --with-libiconv --with-system-zlib
--with-build-sysroot=/r/winlibs32ucrt_stage/31300.gcc/gcc-12.2.0/build_mingw/mingw-w64 CFLAGS='-I/d/Prog/winlibs32ucrt_stage/custombuilt/include/libdl-win32
-D__USE_MINGW_ACCESS' CXXFLAGS=-D__USE_MINGW_ACCESS LDFLAGS='-Wl,--dynamicbase -Wl,--nxcompat -Wl,--tsaware'
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.2.0 (MinGW-W64 i686-ucrt-posix-dwarf, built by Brecht Sanders)
Tests :
a) test n° 1 :
Un programme C standard tout simple, projet stocké sous C:\src\EssaiC\EssaiC.cbp
source sous C:\src\EssaiC\EssaiC.c
Deux configurations utilisées : "Debug CLANG W32" et "Release CLANG W32"
Ok, ca fonctionne avec le compilateur CLANG sous MINGW64 avec GCC 32 bits.
b) test n° 2 :
Un programme C++ standard tout simple, projet stocké sous C:\src\EssaiCpp\EssaiCpp.cbp
source sous C:\src\EssaiCpp\main.cpp
Deux configurations utilisées : "Debug CLANG W32" et "Release CLANG W32"
Ok, ca fonctionne avec le compilateur CLANG++ sous MINGW64 avec GCC 32 bits.
F) Installation d'une version de MINGW64 "packagée" winlibs (version GCC 12.2.0 64 bits)
Je redétaille à nouveau ci-dessous, en me focalisant sur le package 64 bits disponible sur https://winlibs.com/
Cette archive a pour nom : winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.7-mingw-w64ucrt-10.0.0-r4.7z, je la décompresse sur
le répertoire C:\mingw64 (j'ai lu quelque part qu'il fallait conserver ce nom de répertoire).
On a ainsi installé les dernières versions "packagées" de GCC 12.2.0 + MinGW-w64 9.0.0 avec une version ucrt ( + LLVM/Clang/LLD/LLDB llvm-15.0.7)
Toolchain executables :
C:\mingw64 (puis répertoire \bin)
compilateur C : gcc.exe
compilateur C++ : g++.exe
linker for dynamic lib : g++.exe
linker for static lib : ar.exe
debugger : gdb.exe
resource compiler : windres.exe
make program : mingw32-make
Search directories :
a) compiler : C:\mingw64\x86_64-w64-mingw32\include
b) linker : C:\mingw64\x86_64-w64-mingw32\lib
a) resource compiler : C:\mingw64\x86_64-w64-mingw32\include
Résultat de la commande "gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/12.2.0/lto-wrapper.exe
OFFLOAD_TARGET_NAMES=nvptx-none
Target: x86_64-w64-mingw32
Configured with: ../configure --prefix=/r/winlibs64ucrt_stage/26132.gcc/inst_gcc-12.2.0/share/gcc --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32
--enable-offload-targets=nvptx-none --with-pkgversion='MinGW-W64 x86_64-ucrt-posix-seh, built by Brecht Sanders' --with-tune=generic --enable-checking=release
--enable-threads=posix --disable-sjlj-exceptions --disable-libunwind-exceptions --disable-serial-configure --disable-bootstrap --enable-host-shared
--enable-plugin --disable-default-ssp --disable-rpath --disable-libstdcxx-debug --disable-version-specific-runtime-libs --with-stabs --disable-symvers
-enable-languages=c,c++,fortran,lto,objc,obj-c++,jit --disable-gold --disable-nls --disable-stage1-checking --disable-win32-registry --disable-multilib
--enable-ld --enable-libquadmath --enable-libada --enable-libssp --enable-libstdcxx --enable-lto --enable-fully-dynamic-string --enable-libgomp
--enable-graphite --enable-mingw-wildcard --enable-libstdcxx-time --enable-libstdcxx-pch --with-mpc=/d/Prog/winlibs64ucrt_stage/custombuilt
--with-mpfr=/d/Prog/winlibs64ucrt_stage/custombuilt --with-gmp=/d/Prog/winlibs64ucrt_stage/custombuilt --with-isl=/d/Prog/winlibs64ucrt_stage/custombuilt
--enable-libstdcxx-backtrace --enable-install-libiberty --enable-__cxa_atexit --without-included-gettext --with-diagnostics-color=auto --enable-clocale=generic
--with-libiconv --with-system-zlib --with-build-sysroot=/r/winlibs64ucrt_stage/26132.gcc/gcc-12.2.0/build_mingw/mingw-w64
CFLAGS='-I/d/Prog/winlibs64ucrt_stage/custombuilt/include/libdl-win32 -D__USE_MINGW_ACCESS'
CXXFLAGS=-D__USE_MINGW_ACCESS LDFLAGS='-Wl,--dynamicbase -Wl,--high-entropy-va -Wl,--nxcompat -Wl,--tsaware'
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.2.0 (MinGW-W64 x86_64-ucrt-posix-seh, built by Brecht Sanders)
Tests :
a) test n° 1 :
Un programme C standard tout simple, projet stocké sous C:\src\EssaiC\EssaiC.cbp
source sous C:\src\EssaiC\EssaiC.c
Deux configurations utilisées : "Debug CLANG W64" et "Release CLANG W64"
Ok, ca fonctionne avec le compilateur CLANG sous MINGW64 avec GCC 64 bits.
b) test n° 2 :
Un programme C++ standard tout simple, projet stocké sous C:\src\EssaiCpp\EssaiCpp.cbp
source sous C:\src\EssaiCpp\main.cpp
Deux configurations utilisées : "Debug CLANG W64" et "Release CLANG W64"
Ok, ca fonctionne avec le compilateur CLANG++ sous MINGW64 avec GCC 64 bits.
G) TDM GCC 32 bits (version officielle, TDM gcc 10.3.0)
On télécharge la version officielle sur le site Web SourceForge : https://sourceforge.net/projects/tdm-gcc/files/v10.3.0-tdm-1/
Hypothèses : on installe TDM GCC 32 sur le répertoire proposé par défaut : C:\TDM-GCC-32
Toolchain executables :
C:\TDM-GCC-32 (puis répertoire \bin )
compilateur C : gcc.exe
compilateur C++ : g++.exe
linker for dynamic lib : g++.exe
linker for static lib : ar.exe
debugger : gdb.exe
resource compiler : windres.exe
make program : mingw32-make.exe
Search directories :
a) compiler : C:\TDM-GCC-32\include
b) linker : C:\TDM-GCC-32\lib
a) resource compiler : C:\TDM-GCC-32\include
Utilisation de la commande : "g++.exe -v" ->
Utilisation des specs internes.
COLLECT_GCC=g++.exe
COLLECT_LTO_WRAPPER=C:/TDM-GCC-32/bin/../libexec/gcc/mingw32/10.3.0/lto-wrapper.exe
Cible : mingw32
Configuré avec: ../../../src/gcc-git-10.3.0/configure --build=mingw32 --enable-languages=ada,c,c++,fortran,jit,lto,objc,obj-c++
--enable-libgomp --enable-lto --enable-graphite --enable-libstdcxx-debug --enable-threads=posix --enable-version-specific-runtime-libs
--enable-fully-dynamic-string --enable-libstdcxx-threads --disable-build-format-warnings --with-gnu-ld --disable-werror
--enable-nls --enable-mingw-wildcard --disable-win32-registry --disable-symvers --enable-large-address-aware
--enable-cxx-flags='-fno-function-sections -fno-data-sections -DWINPTHREAD_STATIC' --enable-libstdcxx-filesystem-ts=yes
--enable-libstdcxx-time=yes --enable-checking=release --prefix=/mingw32tdm --with-local-prefix=/mingw32tdm
--with-pkgversion=tdm-1 --enable-sjlj-exceptions --with-bugurl=https://github.com/jmeubank/tdm-gcc/issues
Modèle de thread: posix
Algorithmes de compression LTO supportés: zlib zstd
gcc version 10.3.0 (tdm-1)
Tests :
a) test n° 1 :
Un programme C standard tout simple, projet stocké sous C:\src\EssaiC\EssaiC.cbp
source sous C:\src\EssaiC\EssaiC.c
Deux configurations utilisées : "Debug TDM 32" et "Release TDM 32"
Ok, ca fonctionne avec le compilateur gcc de TDM en 64bits.
b) test n° 2 :
Un programme C++ standard tout simple, projet stocké sous C:\src\EssaiCpp\EssaiCpp.cbp
source sous C:\src\EssaiCpp\main.cpp
Deux configurations utilisées : "Debug TDM 32" et "Release TDM 32"
Ok, ca fonctionne avec le compilateur gcc de TDM en 64bits.
H) TDM GCC 64 bits (version officielle, TDM gcc 10.3.0)
On télécharge la version officielle sur le site Web SourceForge : https://sourceforge.net/projects/tdm-gcc/files/v10.3.0-tdm64-1/
Hypothèses : on installe TDM GCC 64 sur le répertoire proposé par défaut : C:\TDM-GCC-64
Toolchain executables :
C:\TDM-GCC-64 (puis répertoire \bin )
compilateur C : gcc.exe
compilateur C++ : g++.exe
linker for dynamic lib : g++.exe
linker for static lib : ar.exe
debugger : gdb.exe
resource compiler : windres.exe
make program : mingw32-make.exe
Search directories :
a) compiler : C:\TDM-GCC-64\x86_64-w64-mingw32\include
b) linker : C:\TDM-GCC-64\x86_64-w64-mingw32\lib
a) resource compiler : C:\TDM-GCC-64\x86_64-w64-mingw32\include
Affichage de la commande : "g++.exe -v" ->
Utilisation des specs internes.
COLLECT_GCC=g++.exe
COLLECT_LTO_WRAPPER=C:/TDM-GCC-64/bin/../libexec/gcc/x86_64-w64-mingw32/10.3.0/lto-wrapper.exe
Cible : x86_64-w64-mingw32
Configuré avec: ../../../src/gcc-git-10.3.0/configure --build=x86_64-w64-mingw32 --enable-targets=all
--enable-languages=ada,c,c++,fortran,jit,lto,objc,obj-c++ --enable-libgomp --enable-lto --enable-graphite
--enable-cxx-flags=-DWINPTHREAD_STATIC --disable-build-with-cxx --disable-build-poststage1-with-cxx
--enable-libstdcxx-debug --enable-threads=posix --enable-version-specific-runtime-libs --enable-fully-dynamic-string
--enable-libstdcxx-filesystem-ts=yes --disable-libstdcxx-pch --enable-libstdcxx-threads --enable-libstdcxx-time=yes
--enable-mingw-wildcard --with-gnu-ld --disable-werror --enable-nls --disable-win32-registry --enable-large-address-aware
--disable-rpath --disable-symvers --prefix=/mingw64tdm --with-local-prefix=/mingw64tdm --with-pkgversion=tdm64-1
--with-bugurl=https://github.com/jmeubank/tdm-gcc/issues
Modèle de thread: posix
Algorithmes de compression LTO supportés: zlib zstd
gcc version 10.3.0 (tdm64-1)
Tests :
a) test n° 1 :
Un programme C standard tout simple, projet stocké sous C:\src\EssaiC\EssaiC.cbp
source sous C:\src\EssaiC\EssaiC.c
Deux configurations utilisées : "Debug TDM 64" et "Release TDM 64"
Ok, ca fonctionne avec le compilateur gcc de TDM en 64bits.
b) test n° 2 :
Un programme C++ standard tout simple, projet stocké sous C:\src\EssaiCpp\EssaiCpp.cbp
source sous C:\src\EssaiCpp\main.cpp
Deux configurations utilisées : "Debug TDM 64" et "Release TDM 64"
Ok, ca fonctionne avec le compilateur gcc de TDM en 64bits.
I) Installation de MINGW64 et de MINGW32 version GCC 12.2.0 (et de CLANG aussi en version 15.0.7)) avec l'outil MSYS2
La version officielle est téléchargeable sur le site Web : https://www.msys2.org/
Le fichier de téléchargement est le suivant (à date) : msys2-x86_64-20230127.exe
J'ai été conquis par cette nouvelle installation de MSYS qui historiquement était plutôt lié à CYGWIN.
En effet, il est très facile de la mettre à niveau avec l'utilitaire fourni PACMAN, et la version de GCC en 32 bits ou 64 bits
est vraiment la plus à jour possible -> commande "magique" de mise à jour dans une console MSYS2 : "pacman -Syuu"
Prérequis : on installe MSYS2 sur le répertoire suivant : C:\msys64 (par exemple)
Toolchain executables :
C:\msys64\mingw32 (puis répertoire \bin , ou alors C:\msys64\mingw64 si c'est la configuration X64 qui est recherchée)
compilateur C : gcc.exe
compilateur C++ : g++.exe
linker for dynamic lib : g++.exe
linker for static lib : ar.exe
debugger : gdb.exe
resource compiler : windres.exe
make program : mingw32-make.exe
Search directories :
a) compiler : C:\msys64\mingw32\include (ou alors C:\msys64\mingw64\include si option X64)
b) linker : C:\msys64\mingw32\lib (ou alors C:\msys64\mingw64\lib si option X64)
a) resource compiler : C:\msys64\mingw32\include (ou alors C:\msys64\mingw64\include si option X64)
Affichage de la commande : "g++.exe -v" pour mingw32 ->
Using built-in specs.
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/12.2.0/lto-wrapper.exe
Target: i686-w64-mingw32
Configured with: ../gcc-12.2.0/configure --prefix=/mingw32 --with-local-prefix=/mingw32/local --build=i686-w64-mingw32 --host=i686-w64-mingw32
--target=i686-w64-mingw32 --with-native-system-header-dir=/mingw32/include --libexecdir=/mingw32/lib --enable-bootstrap --enable-checking=release
--with-arch=pentium4 --with-tune=generic --enable-languages=c,lto,c++,fortran,ada,objc,obj-c++,jit --enable-shared --enable-static --enable-libatomic
--enable-threads=posix --enable-graphite --enable-fully-dynamic-string --enable-libstdcxx-filesystem-ts --enable-libstdcxx-time --disable-libstdcxx-pch
--enable-lto --enable-libgomp --disable-multilib --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers
--with-libiconv --with-system-zlib --with-gmp=/mingw32 --with-mpfr=/mingw32 --with-mpc=/mingw32 --with-isl=/mingw32
--with-pkgversion='Rev7, Built by MSYS2 project' --with-bugurl=https://github.com/msys2/MINGW-packages/issues --with-gnu-as --with-gnu-ld
--disable-libstdcxx-debug --disable-sjlj-exceptions --with-dwarf2 --with-boot-ldflags=-static-libstdc++ --with-stage1-ldflags=-static-libstdc++
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.2.0 (Rev7, Built by MSYS2 project)
Affichage de la commande : "g++.exe -v" pour mingw64 ->
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../gcc-12.2.0/configure --prefix=/mingw64 --with-local-prefix=/mingw64/local --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32
--target=x86_64-w64-mingw32 --with-native-system-header-dir=/mingw64/include --libexecdir=/mingw64/lib --enable-bootstrap --enable-checking=release
--with-arch=nocona --with-tune=generic --enable-languages=c,lto,c++,fortran,ada,objc,obj-c++,jit --enable-shared --enable-static --enable-libatomic
--enable-threads=posix --enable-graphite --enable-fully-dynamic-string --enable-libstdcxx-filesystem-ts --enable-libstdcxx-time --disable-libstdcxx-pch
--enable-lto --enable-libgomp --disable-multilib --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-libiconv
--with-system-zlib --with-gmp=/mingw64 --with-mpfr=/mingw64 --with-mpc=/mingw64 --with-isl=/mingw64 --with-pkgversion='Rev7, Built by MSYS2 project'
--with-bugurl=https://github.com/msys2/MINGW-packages/issues --with-gnu-as --with-gnu-ld --disable-libstdcxx-debug --with-boot-ldflags=-static-libstdc++
--with-stage1-ldflags=-static-libstdc++
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.2.0 (Rev7, Built by MSYS2 project)
Tests :
a) test n° 1 :
Un programme C standard tout simple, projet stocké sous C:\src\EssaiC\EssaiC.cbp
source sous C:\src\EssaiC\EssaiC.c
Deux configurations utilisées : "Debug Msys2w64" et "Release Msys2w64"
Ok, ca fonctionne avec le compilateur GCC de Mingw64.
b) test n° 2 :
Un programme C++ standard tout simple, projet stocké sous C:\src\EssaiCpp\EssaiCpp.cbp
source sous C:\src\EssaiCpp\main.cpp
Deux configurations utilisées : "Debug Msys2w64" et "Release Msys2w64"
Ok, ca fonctionne avec le compilateur GCC de Mingw64.
J) VS2022 (version Visual C++) (32 bits)
La version installée de Visual Studio est la version "Community" 64 bits disponible en freeware sur le site M$.
Prérequis : on installe VS2022 sur le répertoire proposé par défaut : C:\Program Files\Microsoft Visual Studio\2022\Community\
Et, ne pas oublier d'installer aussi le dernier SDK de M$ pour la version Windows 11 dans C:\Program Files (x86)\Windows Kits\10
Il y a aussi une installation en sus de "Visual Studio Installer" qui permet par la suite, les configurations
et les mises à jour "automatiques" de cet IDE via cet outil.
Attention, en cas d'upgrade de Visual Studio, il faudra reprendre les configurations des "Search Directories" indiquées
ci dessous. Les n° évoluants, il faut reprendre l'affectation de chaque répertoire (merci M$, ?§!/!?).
J'ai donc affecté des variables d'environnement pour gérer (plus facilement !) ces évolutions :
KIT_WIN_NUM valant à date 10.0.22621.0
KIT_WIN_VERSION valant à date 10
VS_NUM valant à date 14.34.31933
VS_VERSION valant à date 2022
Toolchain executables :
C:\Program Files (x86)\Microsoft Visual Studio\%VS_VERSION%\Community\VC\Tools\MSVC\%VS_NUM%\bin\Hostx86\x86
compilateur C : cl.exe
compilateur C++ : cl.exe
linker for dynamic lib : link.exe
linker for static lib : link.exe
debugger : ?
resource compiler : rc.exe
make program : nmake.exe
Search directories :
a) compiler : C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\include\%KIT_WIN_NUM%\shared puis
C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\include\%KIT_WIN_NUM%\ucrt puis
C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\include\%KIT_WIN_NUM%\um puis
C:\Program Files\Microsoft Visual Studio\%VS_VERSION%\Community\VC\Tools\MSVC\%VS_NUM%\include
b) linker : C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\lib\%KIT_WIN_NUM%\um\x86 puis
C:\Program Files (x86)\Microsoft Visual Studio\%VS_VERSION%\Community\VC\Tools\MSVC\%VS_NUM%\lib\x86
C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\lib\%KIT_WIN_NUM%\ucrt\x86 puis
C:\Program Files\Microsoft Visual Studio\%VS_VERSION%\Community\VC\Tools\MSVC\%VS_NUM%\lib\x86\store
a) resource compiler : C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\include\%KIT_WIN_NUM%\shared puis
C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\include\%KIT_WIN_NUM%\ucrt puis
C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\include\%KIT_WIN_NUM%\um puis
C:\Program Files\Microsoft Visual Studio\%VS_VERSION%\Community\VC\Tools\MSVC\%VS_NUM%\include
Tests :
a) test n° 1 :
Un programme C standard tout simple, projet stocké sous C:\src\EssaiC\EssaiC.cbp
source sous C:\src\EssaiC\EssaiC.c
Deux configurations utilisées : "Debug VS2022 X32" et "Release VS2022 X32"
Ok, ca fonctionne avec le compilateur C de Microsoft de VS2019.
b) test n° 2 :
Un programme C++ standard tout simple, projet stocké sous C:\src\EssaiCpp\EssaiCpp.cbp
source sous C:\src\EssaiCpp\main.cpp
Deux configurations utilisées : "Debug VS2022 X32" et "Release VS2022 X32"
Ok, ca fonctionne avec le compilateur C de Microsoft de VS2005.
K) VS2022 (version Visual C++ ) (64 bits)
En fait, il s'agit d'une configuration de VS2022 déjà installé pour l'usage d'exécutables en version 64 bits et non en 32 bits
Prérequis : les mêmes que pour l'installation précédente.
Il faut juste rajouter /MACHINE:X64 dans les options du linker au niveau "global" de CB (dans la configuration "compilers").
Et aussi reprendre la même remarque que ci-dessus, en cas de changement de version ... Merci qui ?
Toolchain executables :
C:\Program Files (x86)\Microsoft Visual Studio\%VS_VERSION%\Community\VC\Tools\MSVC\%VS_NUM%\bin\Hostx64\x64
compilateur C : cl.exe
compilateur C++ : cl.exe
linker for dynamic lib : link.exe
linker for static lib : link.exe
debugger : ?
resource compiler : rc.exe
make program : nmake.exe
Search directories :
a) compiler : C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\include\%KIT_WIN_NUM%\shared puis
C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\include\%KIT_WIN_NUM%\ucrt puis
C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\include\%KIT_WIN_NUM%\um puis
C:\Program Files\Microsoft Visual Studio\%VS_VERSION%\Community\VC\Tools\MSVC\%VS_NUM%\include
b) linker : C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\lib\%KIT_WIN_NUM%\um\x64 puis
C:\Program Files (x86)\Microsoft Visual Studio\%VS_VERSION%\Community\VC\Tools\MSVC\%VS_NUM%\lib\x64
C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\lib\%KIT_WIN_NUM%\ucrt\x64 puis
C:\Program Files\Microsoft Visual Studio\%VS_VERSION%\Community\VC\Tools\MSVC\%VS_NUM%\lib\x64\store
a) resource compiler : C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\include\%KIT_WIN_NUM%\shared puis
C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\include\%KIT_WIN_NUM%\ucrt puis
C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\include\%KIT_WIN_NUM%\um puis
C:\Program Files\Microsoft Visual Studio\%VS_VERSION%\Community\VC\Tools\MSVC\%VS_NUM%\include
Tests :
a) test n° 1 :
Un programme C standard tout simple, projet stocké sous C:\src\EssaiC\EssaiC.cbp
source sous C:\src\EssaiC\EssaiC.c
Deux configurations utilisées : "Debug VS2022 X64" et "Release VS2022 X64"
Ok, ca fonctionne avec le compilateur C 64 bits VS2022 de Microsoft.
b) test n° 2 :
Un programme C++ standard tout simple, projet stocké sous C:\src\EssaiCpp\EssaiCpp.cbp
source sous C:\src\EssaiCpp\main.cpp
Deux configurations utilisées : "Debug VS2022 X64" et "Release VS2022 X64"
Ok, ca fonctionne avec le compilateur C 64 bits VS2022 de Microsoft.
L) Borland C/C++ (version 5.5)(32 bits)
Celui de la version officielle site Web : https://www.embarcadero.com/fr/free-tools/ccompiler/free-download
Il faut quand même s'identifier pour obtenir cette version free ... fichier telechargé : BorlandCPP.zip
Prérequis : on installe ce produit Borland (repris depuis par Embarcadero) sur le répertoire C:\BCC55 (par exemple, j'ai supprimé le répertoire BORLAND).
Toolchain executables :
C:\BCC55 (puis répertoire \bin)
compilateur C : bcc32.exe
compilateur C++ : bcc32.exe
linker for dynamic lib : ilink32.exe
linker for static lib : tlib.exe
debugger : ?
resource compiler : brcc32.exe
make program : make.exe (voir si mingw32-make ne ferait pas mieux l'affaire, mais on peut utiliser celui-ci)
Search directories :
a) compiler : C:\BCC55\include
b) linker : C:\BCC55\lib\psdk et C:\BCC55\lib
a) resource compiler : C:\BCC55\include
Tests :
a) test n° 1 :
Un programme C standard tout simple, projet stocké sous C:\src\EssaiC\EssaiC.cbp
source sous C:\src\EssaiC\EssaiC.c
Deux configurations utilisées : "Debug Borland" et "Release Borland"
Ok, ca fonctionne avec le compilateur Digital Mars Compiler.
b) test n° 2 :
Un programme C++ standard tout simple, projet stocké sous C:\src\EssaiCpp\EssaiCpp.cbp
source sous C:\src\EssaiCpp\main.cpp
Deux configurations utilisées : "Debug Borland" et "Release Borland"
Ok, ca fonctionne avec le compilateur Digital Mars Compiler.
M) Digital Mars Compiler (version 8.57)(32 bits)
Celui de la version officielle site Web : https://digitalmars.com/download/freecompiler.html
Il faut non seulement téléchargé le compilateur mais aussi les STLPORT et les utilitaires (BUP) :
dm857c.zip, stlport.zip (version STLport 4.5.3) et bup.zip (utilitaires dont rcc pour la compilation des ressources)
Hypothèses : on installe Digital Mars Compiler sur le répertoire proposé par défaut C:\dm
Point d'attention, pour les applications graphiques sous OpenGL, il faut reconstruire les librairies et les DLL spécifiques
à ce compilateur, ainsi que déposer aux endroits "ad hoc" les fichiers d'include correspondants.
J'ai donc du refabriquer ces librairies et ces DLL en m'aidant de l'utilitaire IMPLIB de Borland C/C++... Galère !!!
Exemples de fichiers manquants : glaux.h, glext.h, glu32.lib, opengl32.lib, glut.h, glut.lib/glut32.lib.
Toolchain executables :
C:\dm (puis répertoire \bin)
compilateur C : dmc.exe
compilateur C++ : dmc.exe
linker for dynamic lib : link.exe
linker for static lib : lib.exe
debugger :
resource compiler : rcc.exe
make program : make.exe (voir si mingw32-make ne ferait pas mieux l'affaire ?)
Search directories :
a) compiler : C:\dm\include\win32 puis C:\dm\stlport\stlport et enfin C:\dm\include
b) linker : C:\dm\lib
a) resource compiler : C:\dm\include\win32 puis C:\dm\include
Tests :
a) test n° 1 :
Un programme C standard tout simple, projet stocké sous C:\src\EssaiC\EssaiC.cbp
source sous C:\src\EssaiC\EssaiC.c
Deux configurations utilisées : "Debug DMC" et "Release DMC"
Ok, ca fonctionne avec le compilateur Digital Mars Compiler.
b) test n° 2 :
Un programme C++ standard tout simple, projet stocké sous C:\src\EssaiCpp\EssaiCpp.cbp
source sous C:\src\EssaiCpp\main.cpp
Deux configurations utilisées : "Debug DMC" et "Release DMC"
Ok, ca fonctionne avec le compilateur Digital Mars Compiler.
O) lcc (version 3.8) (32 bits)
Celui de la version officielle site Web : https://lcc-win32.fr.uptodown.com/windows
Prérequis : on installe lcc sur le répertoire proposé par défaut C:\lcc
Toolchain executables :
C:\lcc (puis répertoire \bin, on peut installer d'abord la version 32 bits puis la version 64 bits)
compilateur C : lcc.exe
compilateur C++ : inexistant avec ce compilateur, par défaut lcc.exe
linker for dynamic lib : lcclnk.exe
linker for static lib : lcclib.exe
debugger :
resource compiler : lrc.exe
make program : make.exe
Search directories :
a) compiler : C:\lcc\include
b) linker : C:\lcc\lib
a) resource compiler : C:\lcc\include
Affichage de la commande : "lcc.exe -v" ->
Logiciels/Informatique lcc-win32 version 3.8. Compilation date: Mar 29 2013 13:11:27
Tests :
a) test n° 1 :
Un programme C standard tout simple, projet stocké sous C:\src\EssaiC\EssaiC.cbp
source sous C:\src\EssaiC\EssaiC.c
Deux configurations utilisées : "Debug lcc" et "Release lcc"
Ok, ca fonctionne avec le compilateur lcc.
b) test n° 2 :
Un programme C++ standard tout simple, projet stocké sous C:\src\EssaiCpp\EssaiCpp.cbp
source sous C:\src\EssaiCpp\main.cpp
Le compilateur lcc ne gère pas le C++. Non OK.
P) lcc64 (version 4.1) (64 bits) : celui de la version officielle site Web
Celui de la version officielle site Web : https://lcc-win32.fr.uptodown.com/windows
Prérequis : on installe lcc64 sur le répertoire proposé par défaut.
On fait une copie de la configuration lcc vers lcc 64 dans "Global Compiler Settings" et on renomme par exemple en "LCC 64"
Toolchain executables :
C:\lcc64 (puis répertoire \bin, on peut installer d'abord la version 32 bits puis la version 64 bits)
compilateur C : lcc64.exe
compilateur C++ : inexistant avec ce compilateur, par défaut lcc64.exe
linker for dynamic lib : lcclnk64.exe
linker for static lib : lcclib64.exe
debugger :
resource compiler : lrc.exe (version 32 bits de cet utilitaire lcc)
make program : make64.exe
Search directories :
a) compiler : C:\lcc64\include64
b) linker : C:\lcc64\lib64
a) resource compiler : C:\lcc64\include64
Affichage de la commande : "lcc64.exe -v" ->
Logiciels/Informatique lcc-win (64 bits) version 4.1.
Compilation date: Oct 27 2016 16:34:50
Tests :
a) test n° 1 :
Un programme C standard tout simple, projet stocké sous C:\src\EssaiC\EssaiC.cbp
source sous C:\src\EssaiC\EssaiC.c
Deux configurations utilisées : "Debug lcc64" et "Release lcc64"
Ok, ca fonctionne avec le compilateur lcc64.
b) test n° 2 :
Un programme C++ standard tout simple, projet stocké sous C:\src\EssaiCpp\EssaiCpp.cbp
source sous C:\src\EssaiCpp\main.cpp
Le compilateur lcc64 ne gère pas le C++. Non OK.
Q) Open WATCOM (version 2.0-2017-11-01) (version 32/64 bits)
Version officielle téléchargée sur le site Web de SourceForge : https://sourceforge.net/projects/openwatcom/files/open-watcom-2.0-2017-11-01/
Prérequis : on installe Open WATCOM sur le répertoire proposé par défaut C:\Watcom.
Normalement détecté par défaut dans Code//Blocks : "OpenWatcom (W32) Compiler"
J'ai configuré les deux possibilitès de compilation en version X86 et X64 pour deux déclinaisons différentes de ce compilateur sous CB,
en mettant les bonnes options de compilation et d'édition des liens dans la configuration globale de CB (celle définit dans le menu "Settings" puis "Compilers"):
/MACHINE=X86 ou /MACHINE=X64 pour deux identifiants différents de "compilateurs".
Toolchain executables :
C:\WATCOM (puis répertoire \binnt ou \binnt64 pour la version X64 <- Attention, is doivent être présents dans les répertoires supplémentaires à configurer en sus dans Code::Blocks)
compilateur C : wcl386.exe
compilateur C++ : wcl386.exe
linker for dynamic lib : wlink.exe
linker for static lib : wlib.exe
debugger :
resource compiler : wrc.exe
make program : wmake.exe
Search directories :
a) compiler : C:\WATCOM\h\nt puis
C:\WATCOM\h
b) linker : C:\WATCOM\lib386\nt puis
C:\WATCOM\lib386
a) resource compiler : C:\WATCOM\h\nt puis
C:\WATCOM\h
Tests :
a) test n° 1 :
Un programme C standard tout simple, projet stocké sous C:\src\EssaiC\EssaiC.cbp
source sous C:\src\EssaiC\EssaiC.c
Deux configurations utilisées : "Debug Open WATCOM" et "Release Open WATCOM"
Ok, ca fonctionne avec le compilateur Open WATCOM.
b) test n° 2 :
Un programme C++ standard tout simple, projet stocké sous C:\src\EssaiCpp\EssaiCpp.cbp
source sous C:\src\EssaiCpp\main.cpp
Deux configurations utilisées : "Debug Open WATCOM" et "Release Open WATCOM"
Ok, ca fonctionne avec le compilateur Open WATCOM.
Attention : l'usage du compilateur WATCOM en 64 bits ne fonctionne pas toujours, pour les DLL notamment.
R) Pelles C (version 11.0) (32 bits et 64 bits)
Une version officielle téléchargeable sur le site Web : http://www.smorgasbordet.com/pellesc/
Prérequis : on installe Pelles C sur le répertoire suivant : C:\PellesC
J'ai configuré les deux possibilitès de compilation en version X86 et X64 pour deux déclinaisons différentes de ce compilateur sous CB,
en mettant les bonnes options de compilation et d'édition des liens dans la configuration globale de CB (celle définit dans le menu "Settings" puis "Compilers"):
/MACHINE=X86 ou /MACHINE=X64 pour deux identifiants différents de "compilateurs".
Toolchain executables :
C:\PellesC (puis répertoire \bin)
compilateur C : pocc.exe
compilateur C++ : inexistant avec ce compilateur, par défaut pocc.exe
linker for dynamic lib : polink.exe
linker for static lib : polib.exe
debugger :
resource compiler : porc.exe
make program : pomake.exe
Search directories :
a) compiler : C:\PellesC\include\Win puis
C:\PellesC\include
b) linker : C:\PellesC\lib\Win64 (ou C:\PellesC\lib\Win si compilation en 32 bits) puis
C:\PellesC\lib
a) resource compiler : C:\PellesC\include\Win puis
C:\PellesC\include
Tests :
a) test n° 1 :
Un programme C standard tout simple, projet stocké sous C:\src\EssaiC\EssaiC.cbp
source sous C:\src\EssaiC\EssaiC.c
Deux configurations utilisées : "Debug Pelles C" et "Release Pelles C"
Ok, ca fonctionne avec le compilateur Pelles C.
b) test n° 2 :
Un programme C++ standard tout simple, projet stocké sous C:\src\EssaiCpp\EssaiCpp.cbp
source sous C:\src\EssaiCpp\main.cpp
Deux configurations utilisées : "Debug Pelles C" et "Release Pelles C"
Le compilateur Pelles C ne gère pas le C++. Non OK.
S) Installation de CLANG 32 bits (version llvm-15.0.7) avec une version de MINGW32 "packagée" Winlibs (version GCC 12.2.0 32 bits)
Pour mémoire, j'ai installé la version officielle de Mingw32 avec l'exécutable "mingw-get-setup.exe" sur C:\MingW
Et, j'ai installé un environnement CLANG complet avec Mingw32 avec la récupération d'un fichier zip disponible sur : https://winlibs.com/
Cette archive a pour nom : winlibs-i686-posix-dwarf-gcc-12.2.0-llvm-15.0.7-mingw-w64ucrt-10.0.0-r4.7z, je la décompresse sur
le répertoire C:\mingw32 (j'ai lu quelque part qu'il fallait conserver ce nom de répertoire), avec une version ucrt.
On a ainsi installé les dernières versions "packagées" de GCC 12.2.0 + LLVM/Clang/LLD/LLDB 15.0.7 + MinGW-w64 9.0.0
Toolchain executables :
C:\mingw32 (puis répertoire \bin)
compilateur C : clang.exe
compilateur C++ : clang++.exe
linker for dynamic lib : clang++.exe
linker for static lib : llvm-ar.exe
debugger : gdb.exe
resource compiler : windres.exe
make program : ?
Search directories :
a) compiler : C:\mingw32\i686-w64-mingw32\include
b) linker : C:\mingw32\i686-w64-mingw32\lib
a) resource compiler : C:\mingw32\i686-w64-mingw32\include
Tests :
a) test n° 1 :
Un programme C standard tout simple, projet stocké sous C:\src\EssaiC\EssaiC.cbp
source sous C:\src\EssaiC\EssaiC.c
Deux configurations utilisées : "Debug CLANG W32" et "Release CLANG W32"
Ok, ca fonctionne avec le compilateur CLANG sous MINGW64 avec GCC 32 bits.
b) test n° 2 :
Un programme C++ standard tout simple, projet stocké sous C:\src\EssaiCpp\EssaiCpp.cbp
source sous C:\src\EssaiCpp\main.cpp
Deux configurations utilisées : "Debug CLANG W32" et "Release CLANG W32"
Ok, ca fonctionne avec le compilateur CLANG++ sous MINGW64 avec GCC 32 bits.
T) Installation de CLANG 64 bits (version llvm-15.0.7) avec une version de MINGW64 "packagée" winlibs (version GCC 12.2.0 64 bits)
Je redétaille à nouveau ci-dessous, en me focalisant sur le package 64 bits disponible sur https://winlibs.com/
Cette archive a pour nom : winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.7-mingw-w64ucrt-10.0.0-r4.7z, je la décompresse sur
le répertoire C:\mingw64 (j'ai lu quelque part qu'il fallait conserver ce nom de répertoire).
On a ainsi installé les dernières versions "packagées" de GCC 12.2.0 + LLVM/Clang/LLD/LLDB 15.0.7 + MinGW-w64 9.0.0 avec une version ucrt.
Toolchain executables :
C:\mingw64 (puis répertoire \bin)
compilateur C : clang.exe
compilateur C++ : clang++.exe
linker for dynamic lib : clang++.exe
linker for static lib : llvm-ar.exe
debugger : gdb.exe
resource compiler : windres.exe
make program : ?
Search directories :
a) compiler : C:\mingw64\x86_64-w64-mingw32\include
b) linker : C:\mingw64\x86_64-w64-mingw32\lib
a) resource compiler : C:\mingw64\x86_64-w64-mingw32\include
Tests :
a) test n° 1 :
Un programme C standard tout simple, projet stocké sous C:\src\EssaiC\EssaiC.cbp
source sous C:\src\EssaiC\EssaiC.c
Deux configurations utilisées : "Debug CLANG W64" et "Release CLANG W64"
Ok, ca fonctionne avec le compilateur CLANG sous MINGW64 avec GCC 64 bits.
b) test n° 2 :
Un programme C++ standard tout simple, projet stocké sous C:\src\EssaiCpp\EssaiCpp.cbp
source sous C:\src\EssaiCpp\main.cpp
Deux configurations utilisées : "Debug CLANG W64" et "Release CLANG W64"
Ok, ca fonctionne avec le compilateur CLANG++ sous MINGW64 avec GCC 64 bits.
U) Installation de CLANG + LLVM 32 bits (version 15.0.7) avec une version de Visual Studio 2022 + un windows Kits W10/W11 (version Visual C/C++ 32 bits)
J'ai déjà présenté l'installation de VS 2022 et d'un Kit Windows 10, mais on doit alors rajouter celle de LLVM (+ CLANG) disponible
sur le site Web : https://github.com/llvm/llvm-project/releases/tag/llvmorg-15.0.7
L'installateur a pour nom "LLVM-15.0.7.win32.exe", je l'installe sur le répertoire proposé par défaut : C:\Program Files (x86)\LLVM
On a ainsi installé les dernières versions "packagées" de LLVM/Clang/LLD/LLDB 15.0.0 win32 liées aux environnements Windows.
J'ai aussi affecté deux nouvelles variables d'environnement pour gérer les évolutions de CLANG/LLVM :
CLANG_VERSION valant à date 15.0.7
LLVM C:\Program Files (x86)\LLVM
Toolchain executables :
C:\Program Files (x86)\LLVM (puis répertoire \bin)
compilateur C : clang.exe
compilateur C++ : clang++.exe
linker for dynamic lib : clang++.exe
linker for static lib : llvm-ar.exe
debugger : gdb.exe
resource compiler : llvm-rc.exe
make program : ?
Search directories :
a) compiler : %LLVM%\lib\clang\%CLANG_VERSION%\include puis
C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\include\%KIT_WIN_NUM%\shared puis
C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\include\%KIT_WIN_NUM%\ucrt puis
C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\include\%KIT_WIN_NUM%\um puis
C:\Program Files\Microsoft Visual Studio\%VS_VERSION%\Community\VC\Tools\MSVC\%VS_NUM%\include
b) linker : %LLVM%\lib\clang\%CLANG_VERSION%\lib\windows puis
C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\lib\%KIT_WIN_NUM%\um\x86 puis
C:\Program Files (x86)\Microsoft Visual Studio\%VS_VERSION%\Community\VC\Tools\MSVC\%VS_NUM%\lib\x86
C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\lib\%KIT_WIN_NUM%\ucrt\x86 puis
C:\Program Files\Microsoft Visual Studio\%VS_VERSION%\Community\VC\Tools\MSVC\%VS_NUM%\lib\x86\store
a) resource compiler : %LLVM%\lib\clang\%CLANG_VERSION%\include puis
C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\include\%KIT_WIN_NUM%\shared puis
C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\include\%KIT_WIN_NUM%\ucrt puis
C:\Program Files (X86)\Windows Kits\%KIT_WIN_VERSION%\include\%KIT_WIN_NUM%\um puis
C:\Program Files\Microsoft Visual Studio\%VS_VERSION%\Community\VC\Tools\MSVC\%VS_NUM%\include
Tests :
a) test n° 1 :
Un programme C standard tout simple, projet stocké sous C:\src\EssaiC\EssaiC.cbp
source sous C:\src\EssaiC\EssaiC.c
Deux configurations utilisées : "Debug CLANG X32" et "Release CLANG X32"
Ok, ca fonctionne avec le compilateur CLANG sous l'environnement Windows et Visual C 32 bits.
b) test n° 2 :
Un programme C++ standard tout simple, projet stocké sous C:\src\EssaiCpp\EssaiCpp.cbp
source sous C:\src\EssaiCpp\main.cpp
Deux configurations utilisées : "Debug CLANG X32" et "Release CLANG X32"
Ok, ca fonctionne avec le compilateur CLANG sous l'environnement Windows et Visual C 32 bits.
V) Installation de CLANG + LLVM 64 bits (version 15.0.7) avec une version de Visual Studio 2022 + un windows Kits W10 (version Visual C 64 bits)