1

同じプロジェクトで行われた別の内部ライブラリを使用するプログラムを開発しようとしています。

両方をリンクしたい。lib が保存され、./lib/mylib の下に正常にコンパイルされ、mylib.a が作成されます。問題は、INCLUDE 検索に ./lib/mylib ディレクトリを含め、ライブラリに対してプログラムをリンクする必要があることです。

自動的に定義された変数はありますか、それとも下の Makefile.am のように自分で行う必要がありますか?

SUBDIRS = lib .

# set the include path found by configure
INCLUDES = $(all_includes) -Ilib/mylib

bin_PROGRAMS = myprogram

myprogram_SOURCES = main.c 
myprogram_CPPFLAGS =  $(libmylib_CFLAGS) $(AM_CFLAGS) $(CFLAGS)
nfc_network_config_LDADD =$(LIB_MYLIB)
4

1 に答える 1

2

あなたMakefileはこのように見えるかもしれません。

SUBDIRS = lib .
bin_PROGRAMS = myprogram
myprogram_SOURCES = main.c
myprogram_CPPFLAGS = -Ilib/mylib $(AM_CPPFLAGS) 
myprogram_LDADD = lib/mylib/mylib.a

*_CPPFLAGS通常はと混合しないで ください*_CFLAGS。また、変数$(CFLAGS)$(CPPFLAGS)変数は常に使用されるため(これらはユーザー変数です)、言及する必要はありません。またINCLUDES、廃止された変数(*_CPPFLAGS代わりに使用する必要があります)であり、オプションを指定して実行すると、automakeはそれについて警告し-Wallます。

于 2010-08-18T05:25:59.727 に答える