본문 바로가기

gcc

gcc로 컴파일된 라이브러리 코드를 Visual C++에서 사용하기 gcc는 MSVC의 lib를 링크할 수 있지만, 반대로 MSVC는 gcc에 의해 생성된 .a 라이브러리를 링크하지 못한다. 만약, 이 코드가 MSVC에 의해 컴파일되지 않는다면 이 코드를 정적으로 링크하는 것은 불가능하다. 그러나, dll 형식으로 만들어서 MSVC와 동적으로 링크하는 것은 가능하다. 다음 링크를 참조하라 : http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs 근본적인 해결 방법은 아니지만, 급한대로 쓰기에는 유용하다. 더보기
MinGW : gcc 4.4.0 Release! 오랫동안 기다려왔던 gcc 버전 4를 포함하는 MinGW가 릴리즈되었다. MinGW의 가치는 굳이 말을 하지 않아도 모두 알고 있을 것이다. 지구상에서 가장 널리 퍼진 크로스 컴파일러인 gcc의 윈도우 포트라는 것, 그리고 표준을 잘 준수하는 편에 속하는 좋은 컴파일러라는 점 말이다. 더구나, 무상으로 다양한 언어의 컴파일러와 그 소스까지 제공되니, 진정으로 GNU는 가난한 개발자들에게 신이 내린 선물이 아닐 수 없다. 하지만, 특히 MinGW의 가치는 이게 전부가 아니다. cygwin과 별도로, 정말 필요한 패키지가 있을 때 최소의 수정만으로도 포트를 할 수 있도록 도와주는 툴이기도 하다. 물론, 소스를 수정하지 않고 make를 두들겨서 바이너리를 얻을 수 있는 경우는 극히 드물지만, 경우에 따라서는 .. 더보기
코드를 여러 컴파일러에서 컴파일해보라 좋은 코드를 작성하는 방법 중 한가지는 코드를 여러 컴파일러에서 컴파일해보는 것이다. 크로스 플랫폼을 염두에 둔 코드라면 당연히 거쳐야 하는 것이지만, 보통 특정한 컴파일러에서 컴파일에 성공하고 원하는대로 동작한다면 그것으로 그만인 경우가 많다. 특히, 가장 널리 쓰이는 컴파일러 중 하나인 Visual C++ 컴파일러의 경우, 엄격하게 문법의 적법성을 따져가면서 컴파일하지 않는다. 물론 버전 7 이상이라면 표준을 대단히 잘 준수하는 편에 속하기는 하지만, Visual C++은 상업적 목적의 개발 환경에 맞추어 개발된 컴파일러이며, 그렇기 때문에 정확하게 표준에 부합하지 않더라도 최대한 스스로 정보를 파악하여 컴파일이 성공하도록 도와준다. 그렇지만, 같은 코드를 gcc로 컴파일해보면 컴파일에 실패하는 경우.. 더보기