mingw vs msvc
글쓴이: qkrtntjd / 작성시간: 목, 2014/08/14 - 2:56오후
.lib을 추가하여 qt에서 어떤 소스를 돌려봐야합니다..
소스는 c++로 작성되있습니다.
qt에서 라이브러리를 추가하여 라스코니님 말씀대로 msvc계열(64bit msvc2013) 컴파일러로 돌려보니 잘 돌아갑니다
그런데 mingw(32bit)로 돌려보려고 하면 돌아가지를 않네요
이해가 부족하기는 한데 다른 것은가만히 두고 컴파일러만 교체하여 컴파일하려고 하면 원래 안되나요?
호환성이 mingw>msvc 라고 생각하고 있는데 에러가 undefined reference to '___imp__zn18viconstream....ev'라고 뜹니다.
같은 소스를 가지고 msvc로 돌아가는 코드가 mingw로 돌리면 돌아가기는 하는지 여쭤보고싶습니다.
자세한 설명 해주실 수 있으시면 부탁드립니다..
Forums:
소스코드 -> (컴파일러) -> 중간코드 ->
소스코드 -> (컴파일러) -> 중간코드 -> (링커) -> 실행코드
컴파일러가 다르면 중간코드가 달라집니다.
다른 종류의 중간코드가 들어오면 해석을 못해서 실행코드도 안만들어지죠.
mingw는 gcc 기반이고, msvc는 cl 기반이라서, 서로 호환성이 있거나 그러지 않습니다. 잘못알고 계신겁니다.
답변감사합니다
제가 생각하는건 소스코드가 c++로 되있으니 msvc로 컴파일이 됐습니다
같은 소스코드를 mingw로 컴파일하면 왜 안되는가가 궁금합니다
다시말해서 같은 코드를 msvc로 하면 실행파일이 만들어지는데 mingw로는 실행파일이 안만들어진다(에러가 난다) 정도로 요약할 수 있겠네요..
같은 c++인데 왜 문제가 되는지 궁금합니다
lib가 mingw용이 아니니까요. def 추출해서
lib가 mingw용이 아니니까요.
def 추출해서 lib를 mingw용으로 만들던가, lib 소스를 다시 빌드해야합니다.
그렇군요
감사합니다
혹시..
혹시 방법을 알려주실 수 있나요?
이렇게 돌아가는 방법이 아닌 것 같다는 생각이긴 합니다
돌아간다고 하더라도 검증에 문제가 생길
돌아간다고 하더라도 검증에 문제가 생길 텐데요.
msvc2008을 사용못할 문제가 없다면 굳이 mingw 만 써야 할 이유는 없을 것 같고요.
다른 라이브러리 쓸 때도 문제가 됩니다. 아니면 이전에 사용했던 라이브러리 홈페이지에서 gcc 용 라이브러리도 제공하는지 찾아보세요.
보통 상용은 많이 지원안하는 경우도 있지만 오픈 소스면 Linux/Windows/Mac 등은 동시에 지원할 겁니다.
배포할 때는 msvc 2008 redistributable 을 포함시키면 됩니다.
넵
답변 감사합니다.
gcc용 라이브러리를 찾아봐야겠네요
gilgil.net
Qt는 컴파일러별로 다운로드 받아야 하는 모듈들이 따로 제공되고 있습니다.
msvc 컴파일러를 사용한다면 msvc로 빌드된 Qt를 다운받아야 하고
mingw 컴파일러를 사용한다면 mingw로 빌드된 Qt를 다운받아야 합니다.
이것 저것 신경쓰기 싫다면 full source를 다운받아서 빌드를 전부 하면 되는데
컴파일 시간이 엄청 오래 걸립니다.
http://www.gilgil.net/63897
www.gilgil.net
댓글 달기