성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
[정성태] "props[i].GetValue(props[i])" 코드에서 ...
[정성태] 저렇게 조각 코드 말고, 실제로 재현이 되는 예제 프로젝트를 압...
[정성태] Modules 창(Ctrl+Shift+U)을 띄워서, 해당 Op...
[정성태] 만드실 수 있습니다. 단지, Unity 엔진 내의 스크립트와 W...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>Synology NAS(DS216+II)에 gcc 컴파일러 설치</h1> <p> Synology는 NAS 장비이지만 <a target='tab' href='http://www.sysnet.pe.kr/bbs/DownloadAttachment.aspx?fid=1375&boardid=331301885'>스펙만으로 보면 그냥 한 대의 컴퓨터</a>로도 사용할 수 있습니다. 실제로 제어판 / "터미널 및 SNMP"의 "터미널" 탭에서 "SSH 서비스 활성화"를 해주면 일반 리눅스 장비처럼 SSH 접속을 할 수 있습니다.<br /> <br /> 따라서 윈도우 사용자라면 putty 등을 이용해 ssh 접속을 할 수 있고, root 사용자 권한으로 변경하기 위해 다음과 같이 명령을 내립니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > tester@mynas:~$ <span style='color: blue; font-weight: bold'>sudo -i</span> We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. Password: <span style='color: blue; font-weight: bold'>root</span>@mynas:~# </pre> <br /> 그다음 ipkg 패키지 관리자를 설치합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > ipkg package manager installation on Synology NAS ; <a target='tab' href='http://rescene.wikidot.com/synology-ipkg'>http://rescene.wikidot.com/synology-ipkg</a> </pre> <br /> 위의 글에 따라, 제가 가진 DS216+II 모델은 Intel CPU에 64비트 CPU이므로 다음의 sh 파일을 다운로드해,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > wget http://ipkg.nslu2-linux.org/feeds/optware/syno-i686/cross/stable/syno-i686-bootstrap_1.2-7_i686.xsh </pre> <br /> 다음과 같이 실행합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > chmod +x syno-i686-bootstrap_1.2-7_i686.xsh sh syno-i686-bootstrap_1.2-7_i686.xsh rm syno-i686-bootstrap_1.2-7_i686.xsh // 실행 후에는 필요 없으므로 삭제 </pre> <br /> 이후 ipkg 프로그램은 "/opt/bin" 경로에 설치되므로 다음과 같이 실행하면 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > ~# /opt/bin/ipkg // 또는 그냥 ipkg로 실행합니다. ~# ipkg </pre> <br /> 자, 그럼 이제 ipkg로 가용한 패키지 목록을 업데이트하고,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > ~# ipkg update </pre> <br /> 원하는 프로그램을 설치하면 됩니다. gcc를 설치하기로 했으니 ^^ 다음과 같이 설치합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > ~# ipkg install gcc // 또는 gcc를 비롯해 각종 개발 도구를 함께 설치해 주는 optware-devel을 설치 ~# ipkg install optware-devel </pre> <br /> <hr style='width: 50%' /><br /> <br /> 확인을 해봐야겠죠. ^^ 테스트용 hello world를 만들어,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > #include <stdio.h> int main (void) { printf ("Hello, world!\n"); return 0; } </pre> <br /> 빌드하는데 오류가 발생합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ gcc hello.c -o hello Segmentation fault </pre> <br /> 혹시 이 오류 해결하신 분 계시면 덧글 부탁드립니다. ^^ 저는 이 오류를 해결하지 못해 어쩔 수 없이 ipkg를 포기하고 opkg 패키지 관리자로 갈아타서 해결했습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Synology NAS(DS216+II)에서 실행한 gcc의 Segmentation fault ; <a target='tab' href='http://www.sysnet.pe.kr/2/0/11706'>http://www.sysnet.pe.kr/2/0/11706</a> </pre> <br /> 언젠가는 ipkg의 gcc(버전 4.2.1)도 오류가 발생하지 않을 수 있기에 이 기록을 남겨둡니다.<br /> <br /> <hr style='width: 50%' /><br /> <br /> 참고로, optware-devel 도구 설치 시 wget 오류가 다음과 같이 발생할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > An error ocurred, return value: 1. Collected errors: Cannot find package crosstool-native. Check the spelling or perhaps run 'ipkg update' ERROR: The following packages conflict with wget-ssl: wget </pre> <br /> 이런 경우 그냥 wget을 지우고 wget-ssl을 다시 설치하면 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > ipkg remove wget ipkg install wget-ssl </pre> <br /> <hr style='width: 50%' /><br /> <br /> 저처럼 Visual Studio 사용자라면 ^^ makefile에 익숙지 않을 텐데요, 처음 수작업으로 만들어 본 makefile에서,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > test.out: test.o gcc -o test.out test.o test.o: test.c gcc -c -o test.o test.c </pre> <br /> 다음과 같은 오류가 발생했습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > makefile:2: *** missing separator. Stop. </pre> <br /> 간단합니다. makefile이 들여 쓰기를 인식하는데 반드시 탭(\t) 문자를 사용해야 하기 때문입니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > test.out: test.o gcc -o test.out test.o # 이 라인의 시작이 공백이 아닌 탭 문자 test.o: test.c gcc -c -o test.o test.c # 이 라인의 시작이 공백이 아닌 탭 문자 </pre> <br /> 재미있는 것은 탭 문자에 준하는 8개의 공백을 넣어도 다음과 같이 오류가 발생합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > makefile:2: *** missing separator (did you mean TAB instead of 8 spaces?). Stop. </pre> <br /> 그러니까, 무조건 탭 문자여야 합니다. ^^<br /> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1014
(왼쪽의 숫자를 입력해야 합니다.)