기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
제가 임베디드에 입문한지 얼마 안되어 정리가 필요해서 문의 드립니다.
1. 보통 Target용으로 cross compile 하면 prefix라는 것을 사용하는데,
target에서 /usr 밑에 두려면 어떻게 해야 하는지요?
prefix=/usr로 하면 target의 /usr이 아닌 build 환경의 /usr이기 때문에 기존에 i686-linux의 것에 overwrite가 되는 것 같습니
다. 임시로 /opt로 한다음에 target의 /usr directory로 copy를 해 주어야 하나요?
2. 새로 compile 하는 것이 다른 프로그램에서 사용을 위해 link되는 것이라면
toolchain directory와 /nfsroot directory로 두 번 copy를 해 주어야 하나요?
3. include 파일 같은 경우는 toolchain에만 필요하고 /nfsroot directory에는 필요하지 않은데
이러한 파일 종류를 어떻게 구분하여 install을 해 주어야 하나요?
4. 혹시 제가 혼동하고 있는 것을 명확하게 설명해 주는 자료가 있는지요?
1번만 답변드립니다.
1. package 로 구성되어 있는 file의 경우 ./configure를 이용하실 겁니다. 이때 동일하게 --prefix=/usr 또는 원하는 위치를 주시고, 마찬가지로 --host =.... 와 --target=....도 지정하겠지요. 그리고 make 로 만드신 다음에 임시로 설치할 디렉토리를 정하세요.
위의 설명대로 하면 /opt 가 되겠지요. 그리고 make install 이 아니라 make DESTDIR=/opt install 을 하시면 target의 설치 환경에 맞게 설치가 됩니다. 이 파일을 tar 로 묶어서 target에서 다시 풀어내면 되겠지요. NFS 를 사용하신다면 /opt 대신에 nfsroot 디렉토리를 지정해 주시면 됩니다. 그런데 이게 모두 적용되는 것은 이니기 때문에 configure 를 수행하신후 생성되는 Makefile 를 editer 로 열어보셔서 DESTDIR 이라는 keyword가 Makefile내에 있는지 확인해 보세요. 있다면 적용할 수 있습니다.