질문 하나 드리겠습니다. 여기 저기 검색을 해 보았지만 만족할 답변을 얻지 못 하여 이렇게 글을 남깁니다.
어떠한 패키지 소스를 받아서, 가령 wget 소스를 받아서 다른 시스템에서 사용을 하더라도 영향을 받지 않도록 static하게 컴파일을 하여 하나의 실행파일로 생성을 시키려면 어떻게 해야 하는지요?
수고스러우시겠지만 답변 부탁드리겠습니다. 건강한 하루 되십시오.
글쎄요...너무 막연한 질문이라 막연하게 답변할 수밖에 없겠구요, 이해가 명확하게 잡히질 않는군요... 말 그대로 소스를 받아와서 어떤 플랫폼에서도 영향이 없을듯한 코드를 재생성 혹은 보수 하셔서 하나의 바이너리가 나오도록 컴파일을 하시면 되겠죠 ㅡ,.ㅡ::
내 마음속의 악마가 자꾸만 나를 부추겨. 늘 해왔던 것에 만족하지 말고 뭔가 불가능해 보이는 것을 하라고 말야.
소스 수정 없이는 힘들것 같은데요. 공유 라이브러리를 사용하지 않고, 시스템에 설치된 라이브러리 버전 등에 영향 받지 않으려면, 소스에 해당 라이브러리 소스를 포함해서 컴파일하고 링크해서 단일 바이너리를 생성해야 할 것 같습니다.
gcc에 -static을 주면 static build를 합니다. 따라서 어떤 패키지를 설치할 때, 다음과 같은 식으로 static build를 할 수 있습니다.
$ ./configure CFLAGS='-static' CXXFLAGS='-static'
또는
$ export CFLAGS='-static' $ export CXXFLAGS='-static' $ ./configure
만들어진 static executable은 꽤 크기가 크기 때문에, glibc 대신 newlib를 쓴다거나, uclibc를 써서 크기를 줄일 수 있을 것이며, 자주 쓰는 utility 경우는 busybox에 포함되어 있는 것을 쓰시면 작은 version을 얻을 수 있습니다.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html Korean Ver: http://cinsk.github.io/cfaqs/
감사의 말씀을 너무 늦게 드립니다.
답변감사하고 건강한 하루 되십시오.^^
텍스트 포맷에 대한 자세한 정보
<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]
글쎄요...너무 막연한 질문이라 막연하게 답변할 수밖에 없겠구요,이해
글쎄요...너무 막연한 질문이라 막연하게 답변할 수밖에 없겠구요,
이해가 명확하게 잡히질 않는군요...
말 그대로 소스를 받아와서 어떤 플랫폼에서도 영향이 없을듯한
코드를 재생성 혹은 보수 하셔서 하나의 바이너리가 나오도록
컴파일을 하시면 되겠죠 ㅡ,.ㅡ::
내 마음속의 악마가 자꾸만 나를 부추겨.
늘 해왔던 것에 만족하지 말고 뭔가 불가능해 보이는 것을 하라고 말야.
소스 수정 없이는 힘들것 같은데요. 공유 라이브러리를 사용하지 않고,
소스 수정 없이는 힘들것 같은데요. 공유 라이브러리를 사용하지 않고,
시스템에 설치된 라이브러리 버전 등에 영향 받지 않으려면, 소스에
해당 라이브러리 소스를 포함해서 컴파일하고 링크해서 단일 바이너리를
생성해야 할 것 같습니다.
gcc에 -static을 주면 static build를 합니다.따라서
gcc에 -static을 주면 static build를 합니다.
따라서 어떤 패키지를 설치할 때, 다음과 같은 식으로 static build를 할 수 있습니다.
또는
만들어진 static executable은 꽤 크기가 크기 때문에, glibc 대신 newlib를 쓴다거나, uclibc를 써서 크기를 줄일 수 있을 것이며, 자주 쓰는 utility 경우는 busybox에 포함되어 있는 것을 쓰시면 작은 version을 얻을 수 있습니다.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
답변 주신 모든 분들께 감사의 말슴을 드립니다.
감사의 말씀을 너무 늦게 드립니다.
답변감사하고 건강한 하루 되십시오.^^
댓글 달기