다음과 같이 모듈이 주어졌을때
임의의 symbolx에 대해 REF(x.i)→DEF(x.k)로 나타낼 수 있다.
임의의 symbol x에 대해서 어떤 모듈에서 정의된 것을 사용하는가?
Problem A.
//Module1
int main()
{}
//Module 2
int main;
int p2(){
}
정답:
REF(main.1)→DEF(main.1)
REF(main.2)→DEF(main.1)
풀이:
main() -> strong symbol
변수 main -> weak symbol
strong과 weak가 있을때 string을 선택
ProblemB
//Module1
int main()
{}
//Module 2
int main = 1;
int p2(){
}
정답 : Error
풀이: strong symbol이 2개 이상이므로 error
main() = strong symbol
변수 main = strong symbol
ProblemC
//Module1
int x;
int main()
{}
//Module 2
double x = 1.0;
int p2(){
}
정답 :
REF(x.1)→DEF(x.2)
REF(x.2)→DEF(x.2)
풀이:
int x -> weak
double x -> strong
'System programming' 카테고리의 다른 글
| Linking 6 - Library interpositioning (0) | 2022.04.07 |
|---|---|
| Linker 문제1 (0) | 2022.04.06 |
| Linker2 (0) | 2022.04.05 |
| Linking1 (0) | 2022.04.04 |
| 시스템프로그래밍1 - Overview (0) | 2022.04.04 |
댓글