본문 바로가기

TIL/잡다한

[심볼제거관련] __attribute__ hidden 옵션

반응형

이번에 과제하면서

내부 함수가 외부에 노출이 되지않게끔 만들어달라는 요구가 있었는데


공부하면서 두가지 방법을 알아냈다.


첫번째는 단순히 내부 함수를 선언해줬을때 static 을 추가 시켜주면 된다.

예제로 보자면 다음과 같다:

이렇게 단순히 static을 붙여줌으로서 더이상 노출이 되지않는다.


하지만 여기서 문제가 있는데

만일 처리하려는 내부함수가 다른 코드에서도 쓰일 경우에는 에러가 발생한다.


이럴때는 static으로 해결이 안되고

__attribute__ 을 써서 숨겨줘야한다. (이방법은 어떠한 방법으로 다시 볼 수 있다는데 어렵다고한다) 


이런식으로 해결 할 수가 있다.


다음은 해결된 사진이다.


          ==>       




PS.

해당 라이브러리에 들어있는 심볼들을 확인하기 위해서는

리눅스에 있는 nm명령어를 활용한다


명령어: nm -D [라이브러리 이름]

반응형