Für Windows kompilieren: GCC woher?
-
;fricky schrieb:
wieso das nicht?
Bin nicht sicher, aber ist es nicht falsch, wenn
char ch=0; for(;;){ tuwas(); if(!++ch) cout<<"hallo\n"; }
keine Ausgabe macht?
(mit if(!--c) gehts)Oder template placement delete werden nicht erzeugt und aufgerufen.
-
volkard schrieb:
Bin nicht sicher, aber ist es nicht falsch, wenn
char ch=0; for(;;){ tuwas(); if(!++ch) cout<<"hallo\n"; }
^^glaub ich nicht, dass er das nicht kann. irgendwann ist 'ch' 0 und dann muss er was ausgeben. sowas wäre schon in der version 0.x aufgefallen.
volkard schrieb:
Oder template placement delete werden nicht erzeugt und aufgerufen.
naja, ich glaube es gibt keinen c++ compiler, der alle c++-spezialitäten beherrscht, die theoretisch möglich wären. dafür ist die sprache zu umfangreich und die möglichen permutationen von sprachmitteln sind einfach zu viele. das wird mit c++0x wohl noch schlimmer werden.
-
;fricky schrieb:
^^glaub ich nicht, dass er das nicht kann. irgendwann ist 'ch' 0 und dann muss er was ausgeben. sowas wäre schon in der version 0.x aufgefallen.
Hört, hört. Wenn ich sowas sage, erwarte ich, daß Du es erst testest, und nicht dumm widersprichst.
localhost ~ # nano -w main.cpp localhost ~ # g++ main.cpp && ./a.out hallo hallo hallo localhost ~ # g++ -O2 main.cpp && ./a.out localhost ~ # cat main.cpp #include <iostream> using namespace std; void tuwas(){ } int main(){ char ch=0; for(int i=0;i<1000;++i){ tuwas(); if(!++ch) cout<<"hallo\n"; } } localhost ~ # gcc -v Using built-in specs. Target: i686-pc-linux-gnu Configured with: /var/tmp/portage/sys-devel/gcc-4.3.2-r3/work/gcc-4.3.2/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.3.2 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.3.2/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.3.2 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.3.2/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.3.2/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.3.2/include/g++-v4 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec --disable-fixed-point --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --enable-secureplt --disable-multilib --enable-libmudflap --disable-libssp --enable-libgomp --disable-libgcj --with-arch=i686 --enable-languages=c,c++,treelang --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.3.2-r3 p1.6, pie-10.1.5' Thread model: posix gcc version 4.3.2 (Gentoo 4.3.2-r3 p1.6, pie-10.1.5)
naja, ich glaube es gibt keinen c++ compiler, der alle c++-spezialitäten beherrscht, die theoretisch möglich wären. dafür ist die sprache zu umfangreich und die möglichen permutationen von sprachmitteln sind einfach zu viele. das wird mit c++0x wohl noch schlimmer werden.
Das hat nichts mit Permutationen zu tun. Es ist auch nicht nötig, daß ein Compiler alle Sprachmittel beherrscht. Was er aber nicht machen sollte, ist sie stillschweigend zu akzeptieren und dann falsches Compilat zu erzeugen.
-
Ich habe die Anleitung von StefanD durchgearbeitet. Das mit dem TDM hat ja nicht funktioniert. Bei Stefans Anleitung fehlen aber immer noch die Header und Libs! Sie fehlen auch dann noch wenn ich dieses 60 MB gcc-full Package herunterlade. Ich habe jetzt kurzerhand die 3.x Include/Lib Verzeichnisse genommen, das Lib Verzeichnis des 4.4 drüber kopiert und beides in des Verzeichnis des 4.4'er verschoben. Ergebnis eines Kompile Vorgangs: "Process terminated with status 1"
PS: Den Installer habe ich auch bemerkt, kurze Zeit gejubelt und mich dann wieder über eine weitere 3.x Installation geärgert.
-
Evtl. Umgebungsvariable falsch gesetzt? Pm mich per Board oder ICQ, falls du eine Installationsanleitung haben willst.
-
Naja, das Include Verzeichnis ist halt leer. Die anderen Header scheinen nicht zu funktionieren, siehe Fehlermeldungen. Ich habe ihn runter geworfen und eines von diesen TDM Setups (tdm-mingw-1.905.0-4.4.0-2.exe) installiert (nicht die zum rüber kopieren) nun kann ich mit CodeBlocks&GCC kompilieren. Das war weit schwieriger als ich gedacht hätte!
Falls Du es grad aus dem Ärmel schütteln kannst und nicht erst googlen mußt: Welche tar.gz hätte ich noch herunter laden müssen um auch die Header&Libs zu bekommen? (Wenn ich mal updaten will, ohne auf so ein TDM Setup angewiesen zu sein.)
-
Nöe, wo Mingw die libstdc++ versteckt hat, weiss ich nicht. Neben bei sollte ich mal ausprobieren, ob die parallele Versionen der Algos mitdrin sind. Wäre ein Drama wenn nicht XD
-
Mukki schrieb:
(Wenn ich mal updaten will, ohne auf so ein TDM Setup angewiesen zu sein.)
Immer, wenn ich update, schreibe ich die Downloadlinks in eine Datei. Hat mir gelegentlich schon Arbeit gespart.
rem GMP Runtime [REQUIRED] wget -c http://downloads.sourceforge.net/project/mingw/GCC%20Version%204/Current%20Release_%20gcc-4.4.0/gmp-4.2.4-mingw32-dll.tar.gz?use_mirror=dfn rem libiconv Runtime [REQUIRED] wget -c http://downloads.sourceforge.net/project/mingw/MSYS%20libiconv/libiconv-1.13.1-1/libiconv-1.13.1-1-msys-1.0.11-bin.tar.lzma?use_mirror=dfn rem MPFR Runtime [REQUIRED] wget -c http://downloads.sourceforge.net/project/mingw/GCC%20Version%204/Current%20Release_%20gcc-4.4.0/mpfr-2.4.1-mingw32-dll.tar.gz?use_mirror=dfn rem POSIX Threads for Win32 Runtime [REQUIRED] wget -c http://downloads.sourceforge.net/project/mingw/GCC%20Version%204/Current%20Release_%20gcc-4.4.0/pthreads-w32-2.8.0-mingw32-dll.tar.gz?use_mirror=dfn rem GCC C [REQUIRED] wget -c http://downloads.sourceforge.net/project/mingw/GCC%20Version%204/Current%20Release_%20gcc-4.4.0/gcc-core-4.4.0-mingw32-bin.tar.gz?use_mirror=dfn wget -c http://downloads.sourceforge.net/project/mingw/GCC%20Version%204/Current%20Release_%20gcc-4.4.0/gcc-core-4.4.0-mingw32-dll.tar.gz?use_mirror=dfn rem mingw-runtime [REQUIRED] wget -c http://downloads.sourceforge.net/project/mingw/MinGW%20Runtime/Current%20Release_%20mingwrt-3.15.2/mingwrt-3.15.2-mingw32-dev.tar.gz?use_mirror=dfn rem binutils [REQUIRED] wget -c http://downloads.sourceforge.net/project/mingw/GNU%20Binutils/Current%20Release_%20GNU%20binutils-2.19.1/binutils-2.19.1-mingw32-bin.tar.gz?use_mirror=dfn rem win32 api [REQUIRED] wget -c http://downloads.sourceforge.net/project/mingw/MinGW%20API%20for%20MS-Windows/Current%20Release_%20w32api-3.13/w32api-3.13-mingw32-dev.tar.gz?use_mirror=dfn rem mingw32-make [NICE] wget -c http://downloads.sourceforge.net/project/mingw/GNU%20Make/Current%20Release_%20mingw32-make-3.81-20080326/mingw32-make-3.81-20080326-3.tar.gz?use_mirror=switch rem GCC C++ [NICE] wget -c http://downloads.sourceforge.net/project/mingw/GCC%20Version%204/Current%20Release_%20gcc-4.4.0/gcc-c%2B%2B-4.4.0-mingw32-dll.tar.gz?use_mirror=dfn wget -c http://downloads.sourceforge.net/project/mingw/GCC%20Version%204/Current%20Release_%20gcc-4.4.0/gcc-c%2B%2B-4.4.0-mingw32-bin.tar.gz?use_mirror=dfn rem GDB rem wget -c http://downloads.sourceforge.net/project/mingw/GNU%20Source-Level%20Debugger/Current%20Release_%20gdb-5.2.1/gdb-5.2.1-1.exe?use_mirror=switch
-
volkard schrieb:
;fricky schrieb:
^^glaub ich nicht, dass er das nicht kann. irgendwann ist 'ch' 0 und dann muss er was ausgeben. sowas wäre schon in der version 0.x aufgefallen.
Hört, hört. Wenn ich sowas sage, erwarte ich, daß Du es erst testest, und nicht dumm widersprichst.
ok, bleib ganz entspannt, jetzt hab ichs doch mal getestet. bei mir hagelts 'hallos'. mein mingw ist der, der bei codeblocks dabei war. irgendwas musst du falsch gemacht haben.
-
;fricky schrieb:
ok, bleib ganz entspannt, jetzt hab ichs doch mal getestet. bei mir hagelts 'hallos'. mein mingw ist der, der bei codeblocks dabei war. irgendwas musst du falsch gemacht haben.
Entweder hast Du kein -O2 gemacht, wie ich vorgemacht habe, oder die haben den Fehler neu hinzugefügt.
C:\>gcc -v Es werden eingebaute Spezifikationen verwendet. Ziel: mingw32 Konfiguriert mit: ../gcc-4.4.0/configure --enable-languages=c,ada,c++,fortran,ja va,objc,obj-c++ --disable-sjlj-exceptions --enable-shared --enable-libgcj --enab le-libgomp --with-dwarf2 --disable-win32-registry --enable-libstdcxx-debug --ena ble-version-specific-runtime-libs --prefix=/mingw --with-gmp=/mingw/src/gmp/root --with-mpfr=/mingw/src/mpfr/root --build=mingw32 Thread-Modell: win32 gcc-Version 4.4.0 (GCC)
ist auch krank.
Zeig mal deine.
-
das spuckt er aus:
Compiling: main.cpp Reading specs from C:/Programme/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/specs Configured with: ../gcc-3.4.5/configure --with-gcc --with-gnu-ld --with-gnu-as --host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable-languages=c,c++,f77,ada,objc,java --disable-win32-registry --disable-shared --enable-sjlj-exceptions --enable-libgcj --disable-java-awt --without-x --enable-java-gc=boehm --disable-libgcj-debug --enable-interpreter --enable-hash-synchronization --enable-libstdcxx-debug Thread model: win32 gcc version 3.4.5 (mingw-vista special) C:/Programme/CodeBlocks/MinGW/bin/../libexec/gcc/mingw32/3.4.5/cc1plus.exe -quiet -v -iprefix C:\Programme\CodeBlocks\MinGW\bin/../lib/gcc/mingw32/3.4.5/ C:\Dokumente und Einstellungen\testuser\Desktop\testuser\cpp_test\main.cpp -quiet -dumpbase main.cpp -auxbase-strip obj\Debug\main.o -g -O2 -Wall -version -fexceptions -o C:\DOKUME~1\testuser\LOKALE~1\Temp/ccuOy12B.s #include "..." search starts here: #include <...> search starts here: C:/Programme/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5 C:/Programme/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/mingw32 C:/Programme/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/backward C:/Programme/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include C:/Programme/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/include End of search list. GNU C++ version 3.4.5 (mingw special) (mingw32) compiled by GNU C version 3.4.5 (mingw special). GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=65470 as -o obj\Debug\main.o C:\DOKUME~1\testuser\LOKALE~1\Temp/ccuOy12B.s Linking console executable: bin\Debug\cpp_test.exe Output size is 1.26 MB Process terminated with status 0 (0 minutes, 4 seconds) 0 errors, 0 warnings