도와주세요!!
현재 S3C6410(g-100보드)사용하고 있으며, 우분투 12.04를 사용하고, 커널은 FAlinux측에서 제공해주신 2.6.29를 사용하고 있습니다.
몇주전부터 좀 이상한 상황이 벌어지고 있습니다.
똑같은 코드이고, 똑같은 컴파일러인데 어디서 컴파일하느냐에 따라 g100보드에서 에러를 내기도하고 안내기도 합니다.
여러사람들이 공동 개발하고 있는 상황인데, 컴퓨터 4대중 지금은 1대에서만 컴파일한 실행파일이 정상동작합니다.
1. 정상동작하는 환경은
컴파일러를 usr/local/arm/~컴파일러~ 이 경로에 넣지 않으면 컴파일 조차 되지 않습니다.
분명 path도 전부 정의해주고, 링크도 맞습니다. 하지만 위의 경로에 넣지 않으면 절대 컴파일 되지 않습니다.
2. 위의 경로에 컴파일러를 설치하고 path를 설정해주고 컴파일을 하면, 분명 컴파일이 됩니다.
하지만 이상한건 이렇게 컴파일된 실행파일을 g100보드에 넣고 돌리면
Segmentation fault
라는 메세지 출력과 함께 더이상 프로그램이 돌지 않습니다.
웃긴건 4대중 1대는 똑같은 상황인데 분명 정상동작하고 프로그램도 잘돌아가는 상황이구요...;;
인터넷도 뒤져보고 여기포럼도 봤는데...참...답이 없습니다.
왜냐하면 코드가 잘못됐다면 전부 컴퓨터에서 컴파일이 되지 않아야 한다 생각합니다. 컴파일이 됐다하면 똑같이 안되야 정상이라 생각하구요...그런데 컴파일 됐던 컴퓨터가 안되기도 하고...지금은 4대중 한대만 되는 상황입니다.
그래서 컴파일러와 환경을 의심하기 시작했는데....
컴파일러는 지금은 4대중 한대뿐이지만, 그리고 잘되던 컴퓨터도 갑자기 안되기도 했으니
어쨌든 4대중 한대가 컴파일한 실행파일이 제대로 작동한거겠죠?
그리고 환경...분명 전부 이상해서 user에서 하다가 root에서 해보기도 하고...path도 분명히 맞는데...
원래작업은 user에서만 합니다. 하지만 잘되는 컴퓨터는 root권한에서만 하거든요....
혹시나해서 안되는 컴퓨터들 전부 root에서 해봤는데 역시나 전부 똑같이 안됩니다.
이런경우는 어떻게 해야할지 모르겠습니다.
조언 부탁드립니다.
소중한 댓글 감사드립니다...^^
라이브러리 버젼이나 컴파일러 위치, 기타 라이브러리 버젼, Make file설정등 모든것을 체크한 상태이고, 댓글 확인후 다시 꼼꼼히 확인하였습니다.
그리고 터미널 arm치고 탭키.... 당연히 쳐봤고, 쳐봤으니 링크가 제대로 물렸다는 것도 알고있습니다.
하지만 이것저것 확인하고 삽질한 시간이 아까워 어떻게든 해보려 했으나....도저히 더이상 미룰수가 없더군요....
지금은 컴퓨터 자체를 다시 우분투를 새로 설치하는 사태까지 왔습니다. 똑같이 했는데...지금은 컴파일 되네요....
좀 답답하고 어이없지만... 뭔가 잘못 됐으니 안됐으리라 생각합니다. 기계는 거짓말을 안하니까요....
알고나면 정말 사소한거 일텐데....
결국 포맷과 우분투 재설치로 해결봤습니다. 댓글 감사합니다.
환경에 따라 위와 같은 상황이 발생 할 수도 있습니다.
개인 개발 환경에 따라서 사용하는 라이브러리의 버전이나 컴파일러가 다른 곳에 지정 되어 있을 수도 있습니다.
일단 정상적으로 작동하는 환경의 컴파일러 버전, 어플리케이션 컴파일을 위해서 사용하는 라이브러리 버젼, Makefile의 설정 등을 체크해 보세요.
G100 보드 구입시 동봉되는 CD 의 컴파일러 설치를 다시한번 해보셔도 좋을것 같습니다.
경로를 따로 지정 하지 마시고 컴파일러 tar 파일을 루트 폴더로 이동 후 sudo 권한으로 압축을 풀어 주시면 됩니다.
그 후 터미널 창에서 arm을 쳐놓으시고 탭키를 눌렀을때 arm-generic-linux-gnueabi-gcc 혹은 arm-generic-linux-gnueabi-gcc-4.3.2가 있으셔야 정상적으로 설치된 것 입니다.
확인이 되시면 Makefile 에서 arm-generic-linux-gnueabi-gcc 로 변경해 주시면 되실것이라 봅니다.