도와주세요!!
글 수 15,339
2008.08.21 17:23:30 (*.79.132.23)
7307
POSIX 세마포어를 처음 사용합니다.
페도라 core8에서 아래와 같이 sem_open이 문제 없음을 확인했습니다.
shell#] gcc -o test test.c -lpthread
...
sem_t *sem=NULL;
sem = sem_open("TEST", O_CREAT, 0644,1);
if(sem == SEM_FAILED)
printf("error open semaphore\r\n");
else
printf("sem_open ok\r\n");
...
EX-2410보드에 탑재하니 open fail이 납니다. (OS error code 38: Function not implemented)
shell#] arm-linux-gcc -o test test.c -lpthread
1. 크로스 컴파일 할 때 -l 옵션을 줄 경우 위와 같이 주게 되면 arm-linux-gcc가 기본으로 /usr/arm-linux/lib/참조 하고
gcc로 컴파일 하게 되면 /usr/lib를 참조하는 것인지요? (이런 부분을 gcc의 옵션 또는 Makefile에서 확인 할 수 있는 방법이 있는지요?)
2. 페도라에 있는 pthread 라이브러리와 ramdisk에 있는 pthread 라이브러리의 버전 차이 때문에 에러가 나는지 궁금합니다.
3. 만약 버전 문제라면 glibc-devel-2.7-2를 다운 받아서 라이브러리를 업데이트 해야 하는지요?
답변 부탁드립니다.
페도라 core8에서 아래와 같이 sem_open이 문제 없음을 확인했습니다.
shell#] gcc -o test test.c -lpthread
...
sem_t *sem=NULL;
sem = sem_open("TEST", O_CREAT, 0644,1);
if(sem == SEM_FAILED)
printf("error open semaphore\r\n");
else
printf("sem_open ok\r\n");
...
EX-2410보드에 탑재하니 open fail이 납니다. (OS error code 38: Function not implemented)
shell#] arm-linux-gcc -o test test.c -lpthread
1. 크로스 컴파일 할 때 -l 옵션을 줄 경우 위와 같이 주게 되면 arm-linux-gcc가 기본으로 /usr/arm-linux/lib/참조 하고
gcc로 컴파일 하게 되면 /usr/lib를 참조하는 것인지요? (이런 부분을 gcc의 옵션 또는 Makefile에서 확인 할 수 있는 방법이 있는지요?)
2. 페도라에 있는 pthread 라이브러리와 ramdisk에 있는 pthread 라이브러리의 버전 차이 때문에 에러가 나는지 궁금합니다.
3. 만약 버전 문제라면 glibc-devel-2.7-2를 다운 받아서 라이브러리를 업데이트 해야 하는지요?
답변 부탁드립니다.