VC6.0에서의 컴파일과 VC 2005 에서의 컴파일의 결과물의 사이즈 차이...

dingkyu의 이미지

안녕하세요. 언제나 한수 얻어 배워가는 딩규입니다.
오늘도 너무 궁금한게 하나 생겨서 질문글 올려봅니다.

제가 회사에서 C소스를 이용한 라이브러리를 컴파일하라는
지시를 받았는데요 컴파일 환경이 VC6.0 , VC 2005 둘을 사용합니다.
그런데 똑같은 코드, 똑같은 환경설정을 해주었음에도 불구하고
두 컴파일러에 따라 결과물의 사이즈가 너무 다릅니다.

VC6.0 에서 컴파일해서 라이브러리 파일의 사이즈를 보면 900Kb 정도 나옵니다.(릴리즈 모드)
그런데 VC 2005에서 컴파일해서 사이즈를 보면 2700Kb (역시 릴리즈 모드)에 육박합니다.
소스코드에 뭐 하나 첨가 된거 없고 소스코드의 위치는 동일하게 해서
컴파일 했는데도 불구하고 위와 같은 결과가 나옵니다.
릴리즈 모드에서는 -O2 옵션을 줬는데 말이죠...

이게 대체 왜 그런걸까요 ?
너무 궁금합니다.

monologue의 이미지

MS도 10년동안 같은 사골로 국물을 내진 않습니다. -_-;

dingkyu의 이미지

같은 사골로 국물을 내진 않는다는게 어떤 의미지요 ?

컴파일러가 더 성능이 나빠졌다는 의미인가요 ?
아니면 다른 뜻이 있는건가요 ?

진짜 몰라서 질문올린거니까 가능하면 좀 자세히 설명해 주시면
고맙겠습니다.

고민이 많아 고민인 애늙은이 입니다.

ifree의 이미지

차이가 좀 많이 나기는 하네요.
혹시 6.0 에 최적화된 셋팅이지 않나요?
실행 파일의 크기는 큰 문제는 안되는 듯 합니다만.

hys545의 이미지

즐린
최적화 알고리즘이 버뀌면 파일 크기가 다르고 실행속도가 달라질수도 있을거 같은데

즐린

bootmeta의 이미지

output gui library 차이나, 윈도우즈, win32 변화에 따라 추가된 routine 유무도 꽤 영향을 줄 듯

dingkyu의 이미지

회사에서 개발(정확히는 미국의 어느 회사가 개발한 코드)한 임베디드 UI용
코드라 특정 컴파일러에 최적화 되었다고 보기엔 어렵다고
생각하구요, 제가 봐도 그냥 C 코드이지 특별히 다른건
없어보이거든요.

아무리 생각해봐도 VC6.0 에서 컴파일할때는 없는 무언가가 VC 2005 에서
추가되어 컴파일 되었다고 밖에 볼수 없을거 같긴 한데...
명확하게 알수 있는 방법은 없는 모양이네요...

그냥 VC6.0 쓰라는 뜻일까요 ?

고민이 많아 고민인 애늙은이 입니다.

bootmeta의 이미지

diff로 차이가 나는 상단 부분들을 대강 훓어보면 그럭 저럭 알 수 있지 않을까요?

bluedog9의 이미지

일단 MSVCRT 의 크기가 다ㅎ를겁니다 . 6.0 과 2005에서 사용되는 run time library 와 standard - C library 등이 달라집니다 . 아!그리고 2005라면 .net framwork 1.0이 기본으로 지원되니까요 그것도 다르겠죠

chadr의 이미지

crt가 정적링크로 되어있는지 확인해보세요. 정적링크로 되어있으면 차이가 좀 납니다.
그리고 디버깅 정보가 포함되도록 옵션이 세팅되어있는지 확인해보세요. 이것 때문이라면
꽤나 많은 차이가 납니다.

이런 것들이 두 개발툴의 프로젝트에 공통적으로 적용되어 있는지 확인해보세요.

그리고 위에 닷넷 프레임워크를 말씀하신 분은 프레임워크랑 상관 없을듯 합니다.
필요하면 동적링크 되고 쓰지 않는다면 링크도 안됩니다.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

semmal의 이미지

manifest 정보 때문이지 않을까 싶은데요.
------------------------------
How many legs does a dog have?

------------------------------
How many legs does a dog have?

mg2000의 이미지

Manifest도 추가되고...

기타 DEP라던가 여러가지 옵션들이 더 많은데 직접적으로 비교하기는 어렵지 않을까요?

그냥 오브젝트 파일만 놓고 보면 비슷할 것 같은데요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.