리눅스 CFLAGS 에 대해 질문 드립니다.
안녕하세요 리눅스 초보입니다.
CFLAGS 를 정의하여 사용을 하려고 합니다.
그런데 맘대로 되지 않는군요ㅡㅜ
소스코드상 Define 된 것을 살펴보면 CFLAGS로 준 옵션을 정확히 따라간다면 에러가 나지 않아야 하는데..
자꾸 에러가 나네요 ㅡㅜ
makefile 함 올려봅니다..
정확히 사용했는지좀 살펴봐 주세요 ㅠㅠ
(사경을 헤매이고 있습니다. 미리 감사드려요)
////////////////// 이하 Make File ////////////////////////////////////////////
#********************************************************************
# DATE: 2007/01/10
# FILE NAME: Makefile
# AUTHOR: J. H. Lee
# PURPOSE: Make File For building a JANUS
#*********************************************************************
#---- Compile Option ! ---------------------------------------------------------
TOPDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
UCLINUX_LDFLAGS = -Wl,-elf2flt="-s32768"
UCLINUXDIR = $(EM85xx_ROOT)/uClinux-2.4/include
KERNELMODULEDIR = $(EM85xx_ROOT)/kernelmodule/realmagichwl_kernelland
KERNELUSERDIR = $(EM85xx_ROOT)/kernelmodule/realmagichwl_userland
RUALIB = $(KERNELUSERDIR)/realmagichwl_userland_api.o
LIBS = $(RUALIB)
LIB_PATH = ../lib
#----------------------------------------------------------------------------------
# --- Target Setup ! -----------------------------------
TARGET = ../lib/LibJanus.a
OBJS = bigerrno.o bignum.o blackbox.o deskey.o devcert.o devicedevcert.o divide.o
#INCLUDEDIR = -I../inc -I../../oem -I./inc -I../include -I.././oem
INCLUDEDIR = -I../inc -I./inc
#---------------------------------------------------------------------
TOOLCHAINDIR = /opt/tools-install
# redefine the following macro on the command line(ex: make CROSS_PREFIX="arm-elf-")
#CROSS_PREFIX = arm-elf-
CROSS_PREFIX =
# --- Cross Compiler ! ------------------------------------------------
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)gcc
AR = $(CROSS_PREFIX)ar -rc
AR2 = $(CROSS_PREFIX)ranlib
RANLIB = $(CROSS_PREFIX)ranlib
LD = $(CROSS_PREFIX)ld
NM = $(CROSS_PREFIX)nm
STRIP = $(CROSS_PREFIX)strip
OBJCOPY = $(CROSS_PREFIX)objcopy
#---------------------------------------------------------------------
INCLUDEDIRS += -I./ -I$(TOPDIR)/include -I$(TOOLCHAINDIR)/include $(INCLUDEDIR)
SRCS = $(OBJS:.o=.c)
CFLAGS = -DTARGET=10 -DWMAAPI_NO_DRM -DWMAAPI_NO_DRM_STREAM -DWMADRM_PORTABLE -D_ANSI $(INCLUDEDIRS) -I$(UCLINUXDIR)
#CFLAGS += $(INCLUDEDIRS) -I$(UCLINUXDIR)
CPPFLAGS =
CXXFLAGS =
# -------- Compilation target for C files ! ----------------------------------------
%.o:%.c
@echo "Compiling $< ..."
# $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
$(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
all : $(TARGET)
$(TARGET) : $(OBJS)
$(RM) $(TARGET)
$(AR) $(TARGET) $(OBJS)
cp $(TARGET) /home/luxncool
dep :
$(CC) -M $(INCLUDEDIRS) $(SRCS) > .depend
clean :
rm -rf $(OBJS) $(TARGET) core
ifeq (.depend,$(wildcard .depend))
include .depend
endif
/////////////////////////////////////// end Make File ///////////////////////////
에러가 무슨
에러가 무슨 에러인지 알려주지 않으시면 대답하기 난감합니다.
Written By the Black Knight of Destruction
Written By the Black Knight of Destruction
어떤 과정을 통하여 어떤 작업을 하셨고, 그 결과 어떤 메시지를 받으신 거죠?
어떤 과정을 통하여 어떤 작업을 하셨고, 그 결과 어떤 메시지를 받으신 거죠?
신이 아닌 이상 이것을 추측해서 알아낼 수는 없겠죠.
블로그: http://turtleforward.blogspot.com
지식이 부족하니 질문도 부족하네요 죄송합니다.^^;;
uCLinux에 올릴 Lib를 만드는 과정입니다.
그런데 소스내부에 define되어있는 녀석들을 추가시키기 위해 CFLAGS에 그 내용들을 추가시켰습니다.
하지만 제가 원하는 ifdefine 부분을 타지 않고 다른ifdefine을 인식하여 parse error 가 나네요..;
그래서 이런저런 곳을 헤매이며 makefile을 작성하였으나 여전히 parse error 가 나네요.. ㅡㅜ
혹시 제가 CFALGS 작성방법, 또는 다른 엑세스를 해야 하는 부분을 놓친건 아닌가 해서 질문드립니다.
directory 구성은
JULAS|
|src|
|makefile
|*.c
|inc|
|*.h
|lib
로 구성되어있습니다.
부탁드립니다. ㅠㅠ
혹시나 해서 드리는 말씀인데
혹시나 해서 드리는 말씀입니다만, Makefile에서 %.o:%.c 다음줄과 clean: 다음줄에 탭을 안 넣으신 것은 아니시겠죠? 붙여주신 화면에서는 탭이 안 들어가 있는데 웹 페이지에 붙이다보면 들여쓰기가 안 나오는 경우가 많아서 그러려니 하고 있습니다. 그런데 parse error이라니 그 문제일 가능성도 있군요.
아니면 %.o:%.c 줄에 따옴표가 열리기만 하고 닫혀있지가 않네요.
그런것을 모두 해결한다고 해도 저 메이크파일은 아무것도 안 할 것 같은데요. clean은 잘 되어 있는데, 어떤 것을 만들어야 한다는 것이 잘 정해져있지 않아서요. 적어도 all: $(TARGET) 라인 정도는 있어야 하지 않을까 합니다.
블로그: http://turtleforward.blogspot.com
댓글 달기