• 締切済み

メイクファイルの作成について

以下のメイクファイルに、ib_bluetooth_HID_convert.c、lib_bluetooth_HID_table.cを追加するには どうしたらいいですか? px23e : $(LIBDIR)/$(BLUETOOHLIB) $(LIBDIR)/$(BLUETOOHLIB) : $(BLUESDK_OBJS) $(LIBDIR)/$(BTSTACKLIB) $(BLUETOOTHOBJDIR)/lib_bluetooth.$(O) $(AR) -o lib/libBluetooth.$(L) $(BLUESDK_OBJS) $(LIBDIR)/$(BTSTACKLIB) $(BLUETOOTHOBJDIR)/lib_bluetooth.$(O) $(BLUETOOTHOBJDIR)/%.$(O) : $(ITRON_DIR)/%.c $(CC) $< -o $@ $(COPTS) $(BTOS_HEADERS) $(BLUETOOTHOBJDIR)/%.$(O) : $(ITRON_DIR)/common/%.c $(CC) $< -o $@ $(COPTS) $(BTOS_HEADERS) $(BLUETOOTHOBJDIR)/%.$(O) : $(ITRON_DIR)/hcitrans/common/%.c2 $(CC) $< -o $@ $(COPTS) $(BTOS_HEADERS) $(BLUETOOTHOBJDIR)/%.$(O) : $(ITRON_DIR)/spp_app/%.c $(CC) $< -o $@ $(COPTS) $(BTOS_HEADERS) $(BLUETOOTHOBJDIR)/hiddev.$(O) : $(ITRON_DIR)/hid_app/hiddev.c $(CC) $< -o $@ $(COPTS) $(BTOS_HEADERS) $(BLUETOOTHOBJDIR)/lib_bluetooth.$(O) : $(BT_LIB_DIR)/lib_bluetooth.c $(CC) $< -o $@ $(COPTS) $(INCLUDES) $(BTOS_HEADERS)

みんなの回答

  • Werner
  • ベストアンサー率53% (395/735)
回答No.1

http://www.kotaete-net.net/Default.aspx?pgid=14&qid=240915872418 http://www2.realint.com/cgi-bin/tarticles.cgi?pointc+31109 「類似の質問が出ているようですので、参考にしてはいかがでしょうか?」という皮肉はもう必要ないかな。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 複数のサブディレクトリを一緒にmakeして一つの実行ファイルを作成するには

    いま、Linuxの環境でC言語の勉強しています。 それで、makeを使ってコンパイル方法を調べているのですが、 ソースディレクトリとヘッダーディレクトリを分けて管理している場合に一緒にコンパイルさせる為のMakefileの書き方が分からず困っています。 現在は、同じディレクトリ内にソースファイルとヘッダーファイルが存在してます。ちなみに下記が今のMakefile内容です。 ご存知の方が記述方法もしくは参考サイトを教えて頂けますでしょうか。よろしくお願い致します。 ======================================================== program = test_pro objs = main.o test1.o test2.o CC = gcc CFLAGS = -g -Wall #suffixes_define_rule .SUFFIXES : .c .o $(program) : $(objs) $(CC) $(CFLAGS) -o $@ $^ #suffixes_rule .c.o : $(CC) $(CFLAGS) -c $< .PHONY : clean clean : $(RM) $(objs) #header_depend test1.o : test1.h test2.o : test2.h =====================================================

  • ProCでコンパイルエラーが出ます

    Linux、Oracle8i、ProCで開発しています。 Linux、C、Procに関しては初心者です。 サンプルをもらったのですが、その提供者が夏休みで 連絡が取れないため、ここで質問させていただきます。 コンパイルを行うと、 EXEC SQL INCLUDE "TEST_TABLE.h"; の部分で unable to open include file というエラーが出ました。 どのような原因が考えられるでしょうか? makefileは以下のとおりです。 TEST_TABLE.h は /Test/src/COMMON/ にあります。 include $(ORACLE_HOME)/precomp/lib/env_precomp.mk TARGET =Test SRCS =$(TARGET).pc OBJS =$(TARGET).o BIN =/Test/bin INCL =/Test/src/COMMON/ CDIR =/Test/src/COMMON/ #COBJS =$(CDIR)sub1.o $(CDIR)sub2.o all : $(TARGET) @ echo 'Build complete' mv $(TARGET) $(BIN)/. $(TARGET) : $(OBJS) $(CC) -o $(TARGET) $(OBJS) $(LDPATHFLAG)$(LIBHOME) $(STATICPROLDLIBS) $(COBJS) $(OBJS) : $(SRCS) $(PROC) $(PROCPLSFLAGS) iname=$* $(CC) $(CFLAGS) -I$(INCL) -c $*.c clean : - rm -f $(TARGET) core よろしくお願いします。

  • makefile の書き方

    OBJS1 = a.o b.o c.o OBJS2 = d.o e.o f.o OBJS1のそれぞれの元のソースコードと OBJS2のそれぞれに元のソースコードを 違うコンパイルオプションでオブジェクトファイルを作りたいのですが、 間単に書ける方法があれば教えてください。 つまり、以下を簡単に書く方法です。 よろしくお願いします。 a.o: a.c ${CC} ${CFLAGS_1} $< -o $@ b.o: b.c ${CC} ${CFLAGS_1} $< -o $@ c.o: c.c ${CC} ${CFLAGS_1} $< -o $@ d.o: d.c ${CC} ${CFLAGS_2} $< -o $@ e.o: e.c ${CC} ${CFLAGS_2} $< -o $@ f.o: f.c ${CC} ${CFLAGS_2} $< -o $@

  • C言語のmakefileについて

    C言語のmakefileについて質問です。 例えば下記makefileでは、“CC”というマクロを“gcc”という文字列で再定義しています。 しかし中には(1)『CC = gcc』という定義なしでいきなり(2)『$(CC) -o hello $(objs)』 でコンパイルしているmakefileを見るのですが、その場合(2)は何でコンパイルされているのでしょうか。($(CC)の中身はCC??GCC?ACC??) ※下記ターゲット名等はサンプルです。 ------------------ # Makefile objs = hello.o edajima.o CC = gcc hello: $(objs) $(CC) -o hello $(objs) .PHONY: clean clean: $(RM) hello $(objs)

  • win版インテルコンパイラnmakeについて

    linux版インテルコンパイラ(icc)を使っているmakefileをwindows版インテルコンパイラ(icl)で使えるように書きかえているのですが、コマンドプロンプトでどうもnmakeがうまくいきません。 元のmakefileは、 CC = icc CFLAGS = -O3 -xSSE4.2 CFLAGS2 = $(CFLAGS) -openmp -openmp-report1 LIBS = -lm -liomp5 PROGRAM = foo.exe SRCS = foo1.c foo2.c foo3.c .c.o: $(CC) $(CFLAGS) -c $< .SUFFIXES: .c .o all : $(PROGRAM) $(PROGRAM) : ${OBJS} $(CC) $(CFLAGS) -o $@ ${OBJS} $(LIBS) foo1.o : foo1.c foo.h foo2.o : foo2.c foo.h $(CC) $(CFLAGS2) -c $< foo3.o : foo3.c foo.h clean: rm *.o rm $(PROGRAM) で、書き換えたmakefileは、 CC = icl CFLAGS = -O3 -QxSSE4.2 CFLAGS2 = $(CFLAGS) -Qopenmp # CFLAGS = -W -O3 LIBS = -lm -liomp5 PROGRAM = foo.exe SRCS = foo1.c foo2.c foo3.c .c.o: $(CC) $(CFLAGS) -c $< .SUFFIXES: .c .o all : $(PROGRAM) $(PROGRAM) : ${OBJS} $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) foo1.o : foo1.c foo.h foo2.o : foo2.c foo.h $(CC) $(CFLAGS2) -c $< foo3.o : foo3.c foo.h clean: rm *.o rm $(PROGRAM) です。(投稿の際に見づらかったためスペースや改行はいじってます) CFLAGS2の-openmpを-Qopenmpにしたのと $(PROGRAM)の行の${OBJS}を$(OBJS)にしたぐらいですがエラーが発生します。({}括弧を使っているとエラーが発生したため) エラーメッセージは NMAKE : warning U4006: 特殊マクロは定義されていません : '$<' です。 {}の括弧を()に修正したのも似たエラーが発生したからなのですが、 コマンドプロンプトだと特殊マクロは使えないのでしょうか?

  • ilink32について。'__setargv__'と'__turboFloat__'が未解決

    WindowsXP+bcc32+ilink32でGLUTを使ったプログラムを書いています。 bccの設定はsetbcc.exe(http://www.cmagazine.jp/setbcc.html)を使いました。 opengl32.lib, glu32.lib, glut32.libはimplib.exe(http://blog.jyoken.net/?eid=478291)を使って作成しました。 以上の設定でbcc32付属のMakeを使ってmakeしたところ、 コンパイル後のリンクで以下のようなエラーが出てしまい困っています。 どなたか解決法を教えていただけないでしょうか? よろしくお願いします。 --------------------- エラーの内容 --------------------- Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: 外部シンボル '__setargv__' が未解決(root が参照) Error: 外部シンボル '__turboFloat' が未解決(root が参照) --------------------- --------------------- 使用しているMakefile --------------------- CC = bcc32 LINKER = ilink32 SRCS = main.c callback.c Task.c Logger.c OBJS = $(SRCS:.c=.obj) TARGET = main.exe CFLAGS = -wall -O2 LFLAGS = LIBS = opengl32.lib glu32.lib glut32.lib INCLUDE = -I"C:\borland\bcc55\Include" LIB = -L"C:\borland\bcc55\Lib" all: $(TARGET) .SUFFIXES : .obj .c .c.obj: $(CC) $(CFLAGS) -c $(SRCS) $(TARGET): $(OBJS) $(LINKER) $(LFLAGS) $(LIB) $(OBJS),$(TARGET),,$(LIBS) ---------------------

  • Makefileについて

    makeファイルの書き方で悩んでいます。 makeファイルは書いたことがなく、ほとんど丸写しです。 私がしたいのは、 (1)run:部分で削除するファイルがなかった場合、エラーとなり次の行へ進みません。なくても(エラーでも/エラー回避して)次の行へ進む方法が知りたいです。 もうひとつは(2)run:部分で、cleanを実行し、makeしてrunを実行させる方法が知りたいです。 --------------以下、サンプルMakefileです。 CC = gcc OBJS = main.o sub.o PROG = test.exe .c.o: $(CC) -c $< -o $@ $(PROG) : $(OBJS) $(CC) $(OBJS) -o $(PROG) $(OBJS) : Makefile clean: rm -f *.o $(PROG) run: rm *.log <---- (1)ここでファイルがないとエラーで止まる $(PROG) all:   <-- (2)[clean]を実行して、makeして、[run]を実行させたい 以上です。

  • Visual C++でのmakeファイルについて

    Unix系OSではmakeファイルを使ったことがあるのですが、Visual C++でも同じ書き方でいいのでしょうか。ちなみにLinuxPCでの例は以下です。 GFLAGS = -I/usr/X11R6/include LIBS = -L/usr/X11R6/lib -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm -lpthread SRC = ensyuu8-4-2.c $(SRC:.c=):$(SRC) $(CC) -o $(SRC:.c=) $(CFLAGS) $(SRC) $(LIBS) 違うのであれば、書き方を教えてください。あと保存する際はLinuxでは「MakeFile」でしたが、Visual C++では「Makefile.cpp」でいいのでしょうか。

  • Openldapインストールmakeでエラー

    Solaris10にOpenldapのインストールがうまく行きません。 make時でエラーになります。 色々、Googleで調べてしているのですが結局うまくいきませんでした。 教えていた頂けたら幸いです。 事前にインストールしたソフト BerkeleyDB4.7.25 openssl0.98l cyrus-sasl-2.1.21 cd openldap-2.4.16 CPPFLAGS="-I/usr/local/BerkeleyDB.4.7/include" LDFLAGS="-L/usr/local/BerkeleyDB.4.7/lib -R/usr/local/BerkeleyDB.4.7/lib" ./configure make depend make (cd .libs && rm -f libldap.la && ln -s ../libldap.la libldap.la) gcc -g -O2 -I../../include -I../../include -I/usr/local/BerkeleyDB.4.7/include -c -o apitest.o apitest.c /bin/sh ../../libtool --mode=link gcc -static -g -O2 -L/usr/local/BerkeleyDB.4.7/lib -R/usr/local/BerkeleyDB.4.7/lib -o apitest apitest.o libldap.la ../../libraries/liblber/liblber.la ../../libraries/liblutil/liblutil.a -lsasl2 -lgss -lssl -lcrypto -lresolv -lgen -lnsl -lsocket gcc -g -O2 -o apitest apitest.o -L/usr/local/BerkeleyDB.4.7/lib ./.libs/libldap.a /work/src/openldap-2.4.16/libraries/liblber/.libs/liblber.a -L/usr/local/lib:-L/usr/local/ssl/lib:-L/usr/sfw/lib:-L/usr/lib:-L/opt/sfw/lib:-L/usr/ccs/lib:-L/usr/local/BerkeleyDB4.7/lib ../../libraries/liblber/.libs/liblber.a ../../libraries/liblutil/liblutil.a /usr/local/lib/libsasl2.so -ldl -lgss -lssl -lcrypto -lresolv -lgen -lnsl -lsocket -R/usr/local/lib -R/usr/local/lib -R/usr/local/BerkeleyDB.4.7/lib Undefined first referenced symbol in file BIO_set_flags ./.libs/libldap.a(tls_o.o) BIO_clear_flags ./.libs/libldap.a(tls_o.o) SSL_CTX_set_info_callback ./.libs/libldap.a(tls_o.o) ld: fatal: Symbol referencing errors. No output written to apitest collect2: ld returned 1 exit status make[2]: *** [apitest] エラー 1 make[2]: ディレクトリ `/work/src/openldap-2.4.16/libraries/libldap' から出ます make[1]: *** [all-common] エラー 1 make[1]: ディレクトリ `/work/src/openldap-2.4.16/libraries' から出ます make: *** [all-common] エラー 1 勉強不足で申し訳ありませんが、よろしくお願いします。

  • makefileの書き方

    UNIX環境でC言語で作成したプログラムのコンパイルをmakefileを使用して行いたいのですが、 インクルードディレクトリの指定が無視されてしまいます。(CFLAG2の-o $@も) 何が問題なのでしょうか? ファイルの構成としてはとりあえず全て同じディレクトリに格納しています。 (3)だけであればインクルードディレクトリの指定等は問題なく展開され、 オブジェクトができあがります。 (1)(2)でロードモジュールを作成しようとすると質問の問題が発生します。 # CC = cc CFLAGS = -Aa -O -g -Y -D_HPUX_SOURCE CFLAGS2 = -o $@ -c # INCDIR = . SRCDIR = . OBJDIR = . INCLUDE = -I$(INCDIR) OBJS = TestMain.o MODULE = $(OBJDIR)/TestMain all: $(MODULE)  ・・・・・(1) $(MODULE): $(OBJS)  ・・・・・(2) $(CC) -o $@ $^ $(OBJDIR)/TestMain.o: $(SRCDIR)/TestMain.c $(SRCDIR)/TestCommon.c  ・・・・・(3) $(CC) $(INCLUDE)/ $(CFLAGS) $(CFLAGS2) $(SRCDIR)/TestMain.c $(SRCDIR)/TestCommon.c (タブは消えてしまいました)