한달동안 잡고있는문제 시즌2 ;;;

한달째 잡고있다가 여기 게시판에 글을 올리고 많이 해결을 봐서 글 올려주신
고수님들께 우선 감사합니다.

제가 CARMEN이라는 로봇제어 프로그램을 ubuntu 9.04 환경에 깔려고 하는데요
현재 gcc-4.2를 쓰고있고요, - Werror 옵션도 설정하였습니다.
그런데 어떤 고수님은 이상없이 깔린다고 하는데 저는;;;
뭔가 저와 다른 설정을 가지고 계신것 같은데요… 잘 모르겠어서요…
그래서 이렇게 무지함을 게시판에 대놓고 떠벌립니다…;;;
고수님들아. 도와주세요 ㅠㅠ

제가 뜨는 에러는 아래와 같고요
carmen 파일과 설치 방법을 올립니다.
무지한 저를 도와주시어. ubuntu와 좀 더 친해지게 해주세요 ㅠㅠ


  • Module : MODEL-LEARN
  • Comment : A program for learning motion models.

–> Starting make
---- Compiling low.cpp to low.o (g++)
cc1plus: warnings being treated as errors
low.cpp: In function ‘void PrintMap(char*, TAncestor*, int, double, double, double)’:
low.cpp:971: error: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result
low.cpp:973: error: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result
low.cpp:975: error: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result
low.cpp: In function ‘void LowSlam(TPath**, TSenseLog**)’:
low.cpp:1174: error: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result
make[6]: *** [low.o] 오류 1
exit: 7: Illegal number: -1
make[5]: *** [binaries] 오류 2
make[4]: *** [all] 오류 2
make[3]: *** [model_learn/model_learner] 오류 2
exit: 7: Illegal number: -1
make[2]: *** [binaries] 오류 2
make[1]: *** [phase2] 오류 2
exit: 1: Illegal number: -1
make: *** [phase2] 오류 2

[quote:3e4qv1e5]Werror 옵션도 설정하였습니다[/quote:3e4qv1e5]

라고 하셨는데 뭔가 아직 문제파악이 덜된듯 보이네요.
Werror 옵션을 빼라는 말씀입니다.
에러메시지로 봐서는 아직 안뺐군요.

[quote:3e4qv1e5]./configure 에 --noWerror 옵션을
추가해서 다시 configure 하신뒤에 make 하시든지

아니면 바로 Makefile.conf 을 편집 -Werror 을 제거한후 make 해보세요.

CFLAGS += -Werror

CXXFLAGS += -Werror

에러의 원인은 경고 메시지를 에러로 보고
멈추도록 되어있는 -Werror 옵션때문입니다
[/quote:3e4qv1e5]

아마도 어떤분의 글에서 다음의 이걸 따라하신듯 한데
make clean;
configure
make

그러시지 말고

[quote:3e4qv1e5]make clean;
configure --noWerror
make[/quote:3e4qv1e5]

하시든지

make clean;
configure
하신뒤에
makefile.conf 에서 Werror 옵션을 빼시든지 하라는 말씀입니다

저는 makefile.conf를 아래와같이 바꿨습니다.

[quote:8bpxux27]
CFLAGS += -Wall -W -Werror -D_REENTRANT
CFLAGS += getconf LFS_CFLAGS
CFLAGS += -D_LARGEFILE64_SOURCE
ifdef NO_STRICT_ALIASING
CFLAGS += -Wno-strict-aliasing
endif

ifeq (x86_64,$(PROCESSOR))
CFLAGS += -fPIC
CXXFLAGS += -fPIC
endif

CXXFLAGS += -Wall -W -Werror -D_REENTRANT

ifdef CARMEN_DEBUG
CFLAGS += -g
CXXFLAGS += -g
else
CFLAGS += -O3
CXXFLAGS += -O3
endif
[/quote:8bpxux27]

위 부분을 아래와 같이요//

[quote:8bpxux27]

CFLAGS += -Werror
CFLAGS += getconf LFS_CFLAGS
CFLAGS += -D_LARGEFILE64_SOURCE
ifdef NO_STRICT_ALIASING
CFLAGS += -Wno-strict-aliasing
endif

ifeq (x86_64,$(PROCESSOR))
CFLAGS += -fPIC
CXXFLAGS += -fPIC
endif

CXXFLAGS += -Werror

ifdef CARMEN_DEBUG
CFLAGS += -g
CXXFLAGS += -g
else
CFLAGS += -O3
CXXFLAGS += -O3
endif
[/quote:8bpxux27]

위와 같은 만들면 되는거 아닌가요???흑흑흑;;;

[code:28fe6p75]CFLAGS += -Wall -W -D_REENTRANT
CFLAGS += getconf LFS_CFLAGS
CFLAGS += -D_LARGEFILE64_SOURCE
ifdef NO_STRICT_ALIASING
CFLAGS += -Wno-strict-aliasing
endif

ifeq (x86_64,$(PROCESSOR))
CFLAGS += -fPIC
CXXFLAGS += -fPIC
endif

CXXFLAGS += -Wall -W -D_REENTRANT

ifdef CARMEN_DEBUG
CFLAGS += -g
CXXFLAGS += -g
else
CFLAGS += -O3
CXXFLAGS += -O3
endif[/code:28fe6p75]
위처럼 하세요
왜 빼라는걸 안 빼시죠? 거 참

아!! 네 감사합니다…그렇게 하는거 였군요;;
히히;

설치가 진행되다 아래와 같인 난관에 또 막혔어요;;
설치 설명서에서 quickcam폴더에 makefile을 아래와같이 만져야 한다고해서 아래처럼 했습니다.

<설명서>

[quote:46tu2r6n]

[size=85:46tu2r6n][quote:46tu2r6n]
$ cd ${CARMEN_HOME}/src/camera/quickcam
$ cp Makefile Makefile.bak
$ vi Makefile[/quote:46tu2r6n]

vi 로 Makefile 을 열어 아래의 줄을 먼저 찾는다 :

[quote:46tu2r6n]
ccvt_mmx.o: ccvt_mmx.S
$(CC) -c $(32BIT_MODE) -DPACKAGE_NAME=… (이하 생략)
[/quote:46tu2r6n]

위의 부분을 아래와 같이 변경하여 compiler 에게 include path 를 추
가로 알려주는 옵션을 준다 :

[quote:46tu2r6n]
ccvt_mmx.o: ccvt_mmx.S
$(CC) -c $(32BIT_MODE)
-I/usr/src/linux-headers-2.6.20-15/include
-DPACKAGE_NAME=…
[/quote:46tu2r6n]
[/size:46tu2r6n]
[/quote:46tu2r6n]

<실시한 내용>

[quote:46tu2r6n]
[size=85:46tu2r6n]ccvt_mmx.o: ccvt_mmx.S
$(CC) -c $(32BIT_MODE)
-I/usr/src/linux-headers-2.6.28-15/include \
-DPACKAGE_NAME=&quot;&quot; -DPACKAGE_TARNAME=&quot;&quot; -DPACKAGE_VERSION=&quot;&quot; -DPACKAGE_STRING=&quot;&quot; -DPACKAGE_BUGREPORT=&quot;&quot; -DSTDC_HEADERS=1 -DHAVE_INTELCPU=1 -DHAVE_MMX=1 -I$(KERNEL_HEADERS_DIR) -o ccvt_mmx.o ccvt_mmx.S[/size:46tu2r6n]
[/quote:46tu2r6n]

위처럼 실시했는데 아래와 같은 에러가 생겼습니다.
[size=85:46tu2r6n]****************************************************************

  • Module : QUICKCAM
  • Comment : Phillips Camera Module

–> Starting make
cc: : No such file or directory
cc: no input files
make[6]: *** [ccvt_mmx.o] 오류 1
exit: 7: Illegal number: -1
make[5]: *** [libraries] 오류 2
make[4]: *** [all] 오류 2
make[3]: *** [quickcam/libquickcam.a] 오류 2
exit: 7: Illegal number: -1
make[2]: *** [binaries] 오류 2
make[1]: *** [phase2] 오류 2
exit: 1: Illegal number: -1
make: *** [phase2] 오류 2[/size:46tu2r6n]

분명 그 폴더에 파일이 있는것을 확인했는데 왜 파일이 없다고 하는지…;;;;

고수님들앙ㅜㅜ;;

cc: : No such file or directory
cc: no input files

위 메시지로 봐서 뭐가 파일을 못찾는군요.
어떤 파일이 없는지 바로 확인해 보세요.
먼저 quickcam 디렉토리로 가서 ccvt_mmx.S 이 있는지 본 다음

carmen/src/camera/quickcam$ [b:305yzebp]ls -al ccvt_mmx.S[/b:305yzebp]
-rw-r–r-- 1 root root 8291 2009-09-04 15:11 ccvt_mmx.S

있으면 ccvt_mmx.S 파일을 열고 어떤 헤더 파일을 include하고 있는지 봅니다.

[code:305yzebp]ccvt_mmx.S:#include <linux/linkage.h>[/code:305yzebp]

아마 linux/linkage.h 파일을 못찾는 에러겠네요.

그 파일도 있는지 체크합니다.

[code:305yzebp]carmen/src/camera/quickcam$ ls -al /usr/src/linux-headers-2.6.28-15///linkage.h
-rw-r–r-- 1 root root 2192 2009-07-10 21:56 /usr/src/linux-headers-2.6.28-15/include/linux/linkage.h[/code:305yzebp]

이렇게 나와야 합니다.

제가 보기에도 linkage.h 문제 같습니다. 확인해볼것은…

  1. 커널소스를 받았는지 확인.

  2. 커널소스 해당경로의 linkage.h 헤더파일이 asm/linkage.h 가 제대로 링크를 하고 있는지… 없으면 symbolic 링크를 걸어서 라도…
    즉 asm/linkge.h —> 커널경로명/include/linkage.h

  3. 위의 사항이 모두 만족이 되면 컴파일 해보시고 에러메시지를 출력해보심이…

linkage.h 파일을 열어서
내용을 수정하려고 하니
권한문제로 안된다고 하는데
어떻게 하면 되는거죠???

정말 우분투 초보라…
카르맨은 왜 리눅스에서만 만들어서 … ㅠㅠ;;

퍼미션 문제는… 그뭐냐;; 맨앞에; sudo 붙여주면 돼는거 아닌가요…?
;;;;;;; 뭐가 먼지 모르겠당… 힛;