Hmm I tried compiling my (modfied) hello world sample, and one of my own console projects with rev 1813 and lookie what I found....
-------------- Build: default in Hello World ---------------
Linking console executable: Hello World.exe
.objs\main.o:locale-misc-inst.cc:(.text+0x220): multiple definition of `mainCRTStartup'
C:/Program Files/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../../crt2.o:crt1.c:(.text+0x220): first defined here
.objs\main.o:locale-misc-inst.cc:(.text+0x240): multiple definition of `WinMainCRTStartup'
C:/Program Files/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../../crt2.o:crt1.c:(.text+0x240): first defined here
.objs\main.o:locale-misc-inst.cc:(.text+0x260): multiple definition of `atexit'
C:/Program Files/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../../crt2.o:crt1.c:(.text+0x260): first defined here
.objs\main.o:locale-misc-inst.cc:(.text+0x270): multiple definition of `_onexit'
C:/Program Files/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../../crt2.o:crt1.c:(.text+0x270): first defined here
.objs\main.o:locale-misc-inst.cc:(.text+0x280): multiple definition of `__do_sjlj_init'
C:/Program Files/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/crtbegin.o:crtstuff.c:(.text+0x0): first defined here
.objs\main.o:crtstuff.c:(.bss+0x4): multiple definition of `_argc'
C:/Program Files/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../../crt2.o:crt1.c:(.bss+0x4): first defined here
.objs\main.o:crtstuff.c:(.bss+0x0): multiple definition of `_argv'
C:/Program Files/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../../crt2.o:crt1.c:(.bss+0x0): first defined here
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings
I did not have this problem before..... :P Happens with RC2 too.
EDIT:
Here is the code from one of my console programs...
#include <iostream>
#include <limits>
int main(int argc, char* argv[])
{
std::cout << "The minimum int is ";
std::cout << std::numeric_limits<int>::min() << std::endl;
std::cout << "The minimum long is ";
std::cout << std::numeric_limits<long>::min() << std::endl;
std::cout << "The maximum long is ";
std::cout << std::numeric_limits<long>::max() << std::endl;
std::cout << "Press Enter to exit.";
std::cin.get();
return 0;
}
Weird...
mingw32-g++.exe -IC:\MinGW\include -c D:\Desktop\foo.cpp -o D:\Desktop\foo.o
mingw32-g++.exe -LC:\MinGW\lib -o D:\Desktop\foo.exe D:\Desktop\foo.o
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings
Do you link against anything special?
-------------- Build: default in System Limits ---------------
mingw32-g++.exe -IC:\MinGW\include -c main.cpp -o .objs\main.o
mingw32-g++.exe -LC:\MinGW\lib -o "System Limits.exe" .objs\main.o
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings
Compiler screwed up...?
I'm having this same error happen to me too. My program compiles fine under UNIX & GCC, and when I compile with MinGW GCC in the command line, but not using Code::Blocks.
-------------- Build: default in pretest ---------------
mingw32-g++.exe -Wall -I- -I. -I"C:\Program Files\MinGW\include" -I -c TestStack.cpp -o .objs\TestStack.o
mingw32-g++.exe -L"C:\Program Files\MinGW\lib" -o TestStack.exe .objs\TestStack.o
.objs\TestStack.o:locale-misc-inst.cc:(.text+0x270): multiple definition of `mainCRTStartup'
C:/Program Files/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../crt2.o:crt1.c:(.text+0x270): first defined here
.objs\TestStack.o:locale-misc-inst.cc:(.text+0x290): multiple definition of `WinMainCRTStartup'
C:/Program Files/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../crt2.o:crt1.c:(.text+0x290): first defined here
.objs\TestStack.o:locale-misc-inst.cc:(.text+0x2b0): multiple definition of `atexit'
C:/Program Files/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../crt2.o:crt1.c:(.text+0x2b0): first defined here
.objs\TestStack.o:locale-misc-inst.cc:(.text+0x2c0): multiple definition of `_onexit'
C:/Program Files/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../crt2.o:crt1.c:(.text+0x2c0): first defined here
.objs\TestStack.o:locale-misc-inst.cc:(.text+0x2d0): multiple definition of `__do_sjlj_init'
C:/Program Files/MinGW/bin/../lib/gcc/mingw32/3.4.5/crtbegin.o:crtstuff.c:(.text+0x0): first defined here
.objs\TestStack.o:crtstuff.c:(.bss+0x4): multiple definition of `_argc'
C:/Program Files/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../crt2.o:crt1.c:(.bss+0x4): first defined here
.objs\TestStack.o:crtstuff.c:(.bss+0x0): multiple definition of `_argv'
C:/Program Files/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../crt2.o:crt1.c:(.bss+0x0): first defined here
C:\Program Files\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: BFD 2.16.91 20050827 assertion fail ../../src/bfd/cofflink.c:1926
collect2: ld returned 5 exit status
Process terminated with status 1 (0 minutes, 3 seconds)
0 errors, 0 warnings