리눅스 CFLAGS 에 대해 질문 드립니다.

luxncool의 이미지

안녕하세요 리눅스 초보입니다.

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 ///////////////////////////

Necromancer의 이미지

에러가 무슨 에러인지 알려주지 않으시면 대답하기 난감합니다.

Written By the Black Knight of Destruction

Written By the Black Knight of Destruction

only2sea의 이미지

어떤 과정을 통하여 어떤 작업을 하셨고, 그 결과 어떤 메시지를 받으신 거죠?

신이 아닌 이상 이것을 추측해서 알아낼 수는 없겠죠.

이제는 서명에 무엇을 써야하는지 생각해보자.

luxncool의 이미지


uCLinux에 올릴 Lib를 만드는 과정입니다.

그런데 소스내부에 define되어있는 녀석들을 추가시키기 위해 CFLAGS에 그 내용들을 추가시켰습니다.
하지만 제가 원하는 ifdefine 부분을 타지 않고 다른ifdefine을 인식하여 parse error 가 나네요..;

그래서 이런저런 곳을 헤매이며 makefile을 작성하였으나 여전히 parse error 가 나네요.. ㅡㅜ

혹시 제가 CFALGS 작성방법, 또는 다른 엑세스를 해야 하는 부분을 놓친건 아닌가 해서 질문드립니다.

directory 구성은

JULAS|
|src|
|makefile
|*.c
|inc|
|*.h
|lib

로 구성되어있습니다.
부탁드립니다. ㅠㅠ


only2sea의 이미지

혹시나 해서 드리는 말씀입니다만, Makefile에서 %.o:%.c 다음줄과 clean: 다음줄에 탭을 안 넣으신 것은 아니시겠죠? 붙여주신 화면에서는 탭이 안 들어가 있는데 웹 페이지에 붙이다보면 들여쓰기가 안 나오는 경우가 많아서 그러려니 하고 있습니다. 그런데 parse error이라니 그 문제일 가능성도 있군요.

아니면 %.o:%.c 줄에 따옴표가 열리기만 하고 닫혀있지가 않네요.

그런것을 모두 해결한다고 해도 저 메이크파일은 아무것도 안 할 것 같은데요. clean은 잘 되어 있는데, 어떤 것을 만들어야 한다는 것이 잘 정해져있지 않아서요. 적어도 all: $(TARGET) 라인 정도는 있어야 하지 않을까 합니다.

이제는 서명에 무엇을 써야하는지 생각해보자.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.