함수 링크 순서 정해주기
오후 12:48 2005-10-28 조경민 bro@shinbiro.com
========================================================

vc linker 옵션중 /ORDER 옵션으로 링크시 함수 순서를 결정해줄 수 있다.
문법
  /ORDER:@filename

링크된 함수 순서는 링크시 /map 옵션을 주어 map file을 생성하게 해서
알 수 있다.

1. Project/Settings/C&C++ 에서 /Gy 옵션을 추가한다.
2. func.txt 파일을 만든다. 파일 안에 순서대로 링크할 함수들을 추가한다.

만일 start라는 함수를 처음 링크하고자 할때 func.txt 안 내용

start

3. Project/Settings/link 에서 /ORDER:@func.txt 와 /MAP (또는 Generate Map File선택)을 추가

컴파일해본다.
맵파일을 보면 링크 순서가 바뀌어 실제 가상주소상 위로 올라옴을 알 수 있다.(Rva+Base)
원래는
  Address         Publics by Value              Rva+Base     Lib:Object

0001:00000000       _int0                      00010400     intasm.obj
0001:0000000e       _jump_to                   0001040e     intasm.obj
0001:00000020       _start                     00010420 f   _main.obj
     :
이었는데, 아래처럼 바뀐다.

  Address         Publics by Value              Rva+Base     Lib:Object

0001:00000000       _start                     00010400 f   _main.obj    <- 처음으로 올라왔다.
0001:000000e0       _int0                      000104e0     intasm.obj
0001:000000ee       _jump_to                   000104ee     intasm.obj
     :

'KB > C/C++' 카테고리의 다른 글

typeof  (0) 2006.06.28
code profiler  (0) 2006.04.17
RSA를 이해하기 위한 코드  (0) 2005.03.25
[펌] vc 5, 6 stl 버그 픽스  (0) 2004.09.10
[펌] C++ Reverse Disassembly  (0) 2004.09.10

+ Recent posts