티스토리 뷰

현재 사용중인 Linux Version은 Debian 7 Wheezy 64bit


난 웬지 static build를 좋아하는 듯하다.


뭐 일단 nCurses Example이라는 이름으로 예제파일을 돌리고 있다. 코드는 여기 https://github.com/drakekr/ncurse-exam


컴파일


cc -o hello hello.c -lncurses


ㅇㅋㅇㅋ 짱잘됨!


그럼 static으로


cc -o hello hello.c -lncurses -static


에러를 쫙 뱉네?


음.. 라이브러리 참조가 안된다는 에러가 나오는데..


뭐야? 파일은 있는데 왜 안돼?



먼저 소스컴파일을 해보기로 했다.


apt-get source libncurses5


아따, 잘 받아지네잉


드가서 ./configure하고 make하고 sudo make install 했다.


아따 문제없구마이


다시 컴파일


cc -o hello hello.c -lncurses -static


똑같네 씨바?


뭐가문제인고 보니 library 참조 디렉토리 우선순위가 일단 /usr/lib/x86_64-linux-gnu부터 훑고 지나가네?


근데 거기 -fPIC 적용된 옛날거 libncurses.a가 있거든


그러니까 라이브러리 직접 지정하는 방법이 있더라고.


아까 빌드한건 /usr/lib에 라이브러리가 저장됐거든.


이렇게 하면 돼.


gcc -o hello hello.c -l:/usr/lib/libncurses.a -static


libncurses 소스컴파일하면 libmenu.a도 생겨.


ncurses 라이브러리 쓰면 menu 라이브러리 거의 다 쓰잖아?


gcc -o hello hello.c -l:/usr/lib/libncurses.a -l:/usr/lib/libmenu.a -static


LIB_PATH 잡아주는 방법도 있고, 아예 library 지정해주는 방법도 있지.


편한거 골라쓰면 됨미다.

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

Source Insight 3.5  (0) 2014.02.17
배열 초기화  (1) 2013.08.17
QT 제목 표시줄 없애기  (0) 2013.07.03
itoa - Integer TO AscII  (0) 2013.06.11
MFC Split  (0) 2012.09.11