다시한번 시작해보려고 시그윈을 세팅하고(g++ 사용)

테스트 코드를 만들고

#include <iostream>


using namespace std;


int main()

{

cout << "Hello" << endl;

return 0;

}

물론 g++ test.cpp는 잘됩니다.

$ g++ test.cpp


XX@IS ~

$ g++ test.cpp


XX@IS ~

$  ./a

Hello


XX@IS ~

$


근데 여기서 놀랐죠.


XX@IS ~

$ g++ -m64 test.cpp


XX@IS ~

$  ./a

Hello


XX@IS ~

$


그냥 64비트 컴파일이 되어버립니다;;;

하지만 함정이 있다는;;;

64비트만 컴파일되는게 함정이네요 ㅠㅠ

-m32 쓰면 오류가 쫘아악;;;;;


XX@IS ~

$ g++ -m32 -o test32 test.cpp

/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/../../../../x86_64-pc-cygwin/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-cygwin/4.8.2//libstdc++.dll.a when searching for -lstdc++

/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/../../../../x86_64-pc-cygwin/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-cygwin/4.8.2//libstdc++.a when searching for -lstdc++

/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/../../../../x86_64-pc-cygwin/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-cygwin/4.8.2//libstdc++.a when searching for -lstdc++

/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/../../../../x86_64-pc-cygwin/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-cygwin/4.8.2/libstdc++.dll.a when searching for -lstdc++

/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/../../../../x86_64-pc-cygwin/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-cygwin/4.8.2/libstdc++.a when searching fo

r -lstdc++

collect2: error: ld returned 1 exit status


XX@IS ~

$


그냥 gcc-c++인가 그걸 깔았더니 이렇네요... 아 그리고 시그윈은 64비트로 깔았고요...


결국 윈도우에 깔려있던 mingw의 g++.exe를 g++32.exe로 바꿔서 해결..

즉, g++32를 쓰면 32비트 컴파일이 됩니다;;;


정리:

시그윈 64비트를 깔고, 다른 것들은 그대로, 컴파일러는 gcc-g++.

->64비트 컴파일만 가능

-->윈도우에 mingw32등을 깔아서(g++) 실행파일명을 g++32.exe로 바꾸고, g++ 대신 g++32를 써서 32비트 컴파일

물론 저처럼 64비트 PC만 해당됩니다..

참고하세여...