linux 개발 환경에 대해 질문 드립니다.
글쓴이: delightsol / 작성시간: 월, 2013/10/28 - 3:29오후
이번에 리눅스로 개발하게 되었는데
리눅스가 익숙치 않아서 모르는게 많네요.
1. 리눅스에서 so 파일을 만들려고 하는데 만약 centOS 에서 개발 한걸 레드햇이나 수세나 다른 리눅스에서도 별 작업없이 그대로 사용할수 있나요? 윈도우 처럼 7에서는 되는데 xp에서는 안되거나 그래서 다른 작업을 해줘야 하는건지 궁금합니다.
2. 컴파일러가 gcc 말고 다른건 없나요?? 비주얼 스튜디오 같이 유료 개발툴같은게 있는지요..? 아니면 그냥 eclipse나 기타 ide 툴이랑 gcc면 다 되는건지요?
3. 개발용으로 추천할만한 리눅스가 어떤게 있을까요?
리눅스는 예전에 좀 하다 안했더니 아무것도 모르겠네요.
알려주시면 감사하겠습니다.
Forums:
so자체가 이미 바이너리화 된 코드이기 때문에
1.so 파일 자체가 이미 바이너리화 된 코드이기 때문에 CPU타입과(예를 들면 x86용으로 컴파일한 코드를 arm프로세서에서 동작하길 바라는건 않되겠지요) 다른 라이브러리와의 의존성 문제만 없다면 그 파일을 재 사용하는건 가능합니다.
2.인텔에서 판매하는 컴파일러(이게 성능 면에서는 더 좋다고 하더군요)나 다른 상용 ide도 있지만 지금까지는 eclipse에 cdt를 설치하는게 제일 편하겠지요. 혹은 와인으로 비쥬얼 스튜디오를 동작하는 것도 가능하니 그쪽도 알아보세요.(사실 vim이나 emacs로 모든걸 다 처리한다는 무시무시한 이야기도 많은게 리눅스 프로그래머라서요)
3. 사실 build-essentilal 패키지만 설치되면 모든 리눅스는 개발이 가능한 리눅스입니다.(이것만 설치하면 사실상 모든 필요하게 다 설치되고)
한가지 더 충고를 드리자면, distribute홈페이에서 되도록이면 많이 사용하는 배포판(예를 들면 cent나 ubuntu혹은 mint나 debian)을 사용하세요. 어떤 문제가 발생했을 때 에러코드를 긁어다 구글링만 해도 해결 방법이 나옵니다.
@의 뜻으로 모일 날이 올까?
->아니, 흩어지는게 @이야.
감사합니다.
많은 도움이 되었습니다.
1. 그럴 수 있습니다. 의존하는 외부 라이브러리의
1. 그럴 수 있습니다. 의존하는 외부 라이브러리의 버전 차이로 실행이 안되거나 실행중 오류가 생길 수 있습니다. 제일 좋은 건 개발된 프로그램이 실행 될 배포본에서 테스트 하시는 게 좋습니다. VirtualBox(Vagrant) 같은 가상 머신을 이용하는 것도 한 방법 이겠죠.
배포 대상이 특정 배포본 버전을 사용하는 소수인지 불특정 다수를 대상으로 배포 하는지에 따라 실행 테스트 환경을 정하셔야 할 것 같습니다.
2. 터미널(tmux) + 컴파일러 + 각종 보조 툴 + 편집기(vim, emacs) 같은 조합도 많이 쓰시는 것 같고 eclipse, codeblocks 같은 GUI 개발툴도 사용 합니다. 컴파일러는 gcc
3. ubuntu, centos
--
마잇
감사합니다.
답변 감사드립니다.
추가 질문좀 드리겠습니다.
1에서 불특정 다수에 배포할 예정인데 혹시 리눅스도 윈도우 설치패키지처럼 필요한파일 묶어서 인스톨 하는게 가능한가요?
그 많은 종류의 리눅스에서 다 테스트는 무리가 따를꺼 같긴하는데 결국 해결방법은 할수 있는 만큼 버전별로 다 테스트하는거인가요?
저라면...
소스코드를 제공하고 직접 컴파일할 수 있도록 매뉴얼을 제공할듯 합니다.
배포 방식에 관련해선 http://en.wikipedia.org/wiki/GNU_build_system 이 문서를 참고하시면 좋겠네요.
소스를 공개할 수 없는 경우에는, 제가 보기엔 그냥 제일 많이 쓰이는 배포판 한두개 정도에서 동작하는 바이너리 인스톨러를 먼저 제작한 뒤에 사용자 요구에 따라 다른 배포판용으로 확장하는 방법이 많이 쓰이는 것 같네요. RPM과 DEB로 시작할 수 있다는 얘기.. 아니면, 포팅이 가능할 경우, 자바같은걸 쓰셔도 되겠네요.
--
deb, rpm 파일 형식이 가장 널리 쓰이는 설치
deb, rpm 파일 형식이 가장 널리 쓰이는 설치 파일(패키지) 형식 입니다.
우분투의 경우는 업데이트 지원 기간이 짧은 6개월 마다 나오는 버전이 있고 2년 마다 LTS 버전이라고 5년 동안 업데이트가 지원되는 버전이 있습니다.
그래서 가장 마지막에 나온 LTS 버전과 그 후에 나온 버전별로 지원 하거나 LTS + 가장 최근 버전, 이렇게 지원 합니다.
https://wiki.ubuntu.com/LTS
지금 현재 12.04(2012년 4월) 버전이 LTS 버전 이니까
12.04, 12.10, 13.04, 13.10 이렇게 지원 하거나,
12.04, 13.10 두 버전만 지원 하거나 합니다. LTS 안 쓰는 사람들은 보통 계속 신 버전으로 업그레이드 하니까 이 방식도 쓸만 합니다.
서버를 타겟으로 하는 패키지들은 거의 LTS 버전 위주로만 신경 쓰는 것 같습니다.
배포하는 방식은,
1. 웹 페이지에서 직접 deb 파일 다운로드 후 설치
2. 사설 저장소를 만든 후 저장소 주소와 저장소 인증키를 추가하고 패키지 관리자로 설치
3. PPA 저장소에 올린 후 저장소를 추가하고 설치
4. 1의 방법을 이용 하나 패키지 설치 시 저장소와 인증키를 자동으로 추가 하여 이후 패키지 관리자로 관리
1의 경우는 새 버전 업데이트 하려면 다시 가서 받아야 하는 번거로움이 있고
2의 경우는 업데이트도 지속적으로 가능 하지만 최초 저장소와 인증키를 등록해야 하는 번거로움이 있고
3의 경우는 2와 같으나 인증키 등록이 자동이라 약간 더 편리 합니다.
4의 경우는 구글 크롬 브라우저를 설치할 때 저렇게 하는 데 사용자 입장에서는 가장 편리 합니다.
우분투만 거의 써봐서 우분투 위주로 답변 드렸습니다.
--
마잇
댓글 달기