아아~ 이거 주말을 다 날렸습니다. 결국 cygwin으로 옮겨타고 나서야 binutil을 컴파일 할 수 있었는데... gcc를 컴파일 하려니 이것 저것 문제가 많아서 결국 실패했습니다. ㅜ_ㅜ
컴파일을 한참 진행하다보니 거의 마지막 단계인 nm을 사용하는 부분과 ar을 사용하는 부분이 문제인것 같던데... makefile 안에 있는 아래와 같은 부분이 정상적으로 동작하지 않는 것 같습니다.
원래의 의도대로라면 if else에 의해서 x86_64-linux-nm 이나 x86_64-linux-ar과 같이 치환되어야할 것들이 그대로 쉘에 출력되어 난데없는 rc.exe가 실행되는 안습인 상황이 벌어지더군요. ㅡ_ㅡa... 쉘이 문제인지 makefile이 문제인지 확실하게 모르겠습니다만... 정상적으로 실행이 안되는 것은 사실인 것 같습니다. ㅎㅎ
아아~ 이거 주말을 다 날렸네요. ㅜ_ㅜ 내일은 꼭 성공해야할텐데... 큰일입니다. ㅜ_ㅜ
그럼 좋은 밤 되세요 ;)
ps) cygwin에서 x86_64로 크로스 컴파일 해보신 분 있으시면 팁 좀 부탁 드립니다. (_ _)
컴파일을 한참 진행하다보니 거의 마지막 단계인 nm을 사용하는 부분과 ar을 사용하는 부분이 문제인것 같던데... makefile 안에 있는 아래와 같은 부분이 정상적으로 동작하지 않는 것 같습니다.
AR_FOR_TARGET = ` \
if [ -f $(objdir)/../binutils/ar ] ; then \
echo $(objdir)/../binutils/ar ; \
else \
if [ "$(host)" = "$(target)" ] ; then \
echo ar; \
else \
t='$(program_transform_name)'; echo ar | sed -e $$t ; \
fi; \
fi`
AR_FLAGS_FOR_TARGET =
AR_CREATE_FOR_TARGET = $(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET) rc
AR_EXTRACT_FOR_TARGET = $(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET) x
RANLIB_FOR_TARGET = ` \
if [ -f $(objdir)/../binutils/ranlib ] ; then \
echo $(objdir)/../binutils/ranlib ; \
else \
if [ "$(host)" = "$(target)" ] ; then \
echo $(RANLIB); \
else \
t='$(program_transform_name)'; echo ranlib | sed -e $$t ; \
fi; \
fi`
NM_FOR_TARGET = ` \
if [ -f ./nm ] ; then \
echo ./nm ; \
elif [ -f $(objdir)/../binutils/nm-new ] ; then \
echo $(objdir)/../binutils/nm-new ; \
else \
if [ "$(host)" = "$(target)" ] ; then \
echo nm; \
else \
t='$(program_transform_name)'; echo nm | sed -e $$t ; \
fi; \
fi`
if [ -f $(objdir)/../binutils/ar ] ; then \
echo $(objdir)/../binutils/ar ; \
else \
if [ "$(host)" = "$(target)" ] ; then \
echo ar; \
else \
t='$(program_transform_name)'; echo ar | sed -e $$t ; \
fi; \
fi`
AR_FLAGS_FOR_TARGET =
AR_CREATE_FOR_TARGET = $(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET) rc
AR_EXTRACT_FOR_TARGET = $(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET) x
RANLIB_FOR_TARGET = ` \
if [ -f $(objdir)/../binutils/ranlib ] ; then \
echo $(objdir)/../binutils/ranlib ; \
else \
if [ "$(host)" = "$(target)" ] ; then \
echo $(RANLIB); \
else \
t='$(program_transform_name)'; echo ranlib | sed -e $$t ; \
fi; \
fi`
NM_FOR_TARGET = ` \
if [ -f ./nm ] ; then \
echo ./nm ; \
elif [ -f $(objdir)/../binutils/nm-new ] ; then \
echo $(objdir)/../binutils/nm-new ; \
else \
if [ "$(host)" = "$(target)" ] ; then \
echo nm; \
else \
t='$(program_transform_name)'; echo nm | sed -e $$t ; \
fi; \
fi`
원래의 의도대로라면 if else에 의해서 x86_64-linux-nm 이나 x86_64-linux-ar과 같이 치환되어야할 것들이 그대로 쉘에 출력되어 난데없는 rc.exe가 실행되는 안습인 상황이 벌어지더군요. ㅡ_ㅡa... 쉘이 문제인지 makefile이 문제인지 확실하게 모르겠습니다만... 정상적으로 실행이 안되는 것은 사실인 것 같습니다. ㅎㅎ
아아~ 이거 주말을 다 날렸네요. ㅜ_ㅜ 내일은 꼭 성공해야할텐데... 큰일입니다. ㅜ_ㅜ
그럼 좋은 밤 되세요 ;)
ps) cygwin에서 x86_64로 크로스 컴파일 해보신 분 있으시면 팁 좀 부탁 드립니다. (_ _)
'OS Kernel > MINT64 OS' 카테고리의 다른 글
드디어 cygwin에서 64bit 크로스 컴파일러(cross compiler)를 만드는데 성공했습니다. ㅜ_ㅜ (4) | 2008.07.09 |
---|---|
전생에 무슨 죄를 지었길래 이렇게 크로스 컴파일이 안되는 것인지... ㅜ_ㅜ (3) | 2008.07.08 |
어디 -m64 옵션이 먹게 컴파일된 MinGW나 Cygwin 없나요? ㅜ_ㅜ (2) | 2008.07.06 |
이런 MinGW에서 64bit 컴파일 옵션인 m64가 안먹는군요 ㅜ_ㅜ)-b (0) | 2008.07.05 |
드디어 IO APIC와 APIC 간의 관계에 대해서 알아냈습니다. ㅜ_ㅜ)-b (6) | 2008.07.03 |