我有一个项目的下一个结构:
cruceGame/
src/
libCruceGame/...
cruceGameCurses/...
multiplayerCurses/...
networking/...
parser/...
docs/...this doesn't matter...
该项目在src /文件夹中有一个Makefile.am:
AM_CPPFLAGS = -I$(top_srcdir)/src/libCruceGame -I$(top_srcdir)/src/networking -I$(top_srcdir)/src/cruceGameCurses -I$(top_srcdir)/src/multiplayerCurses
LDFLAGS = -no-undefined
CFLAGS += -std=c99
if DEBUG
CFLAGS += -g -Wall -DDEBUG
endif
lib_LTLIBRARIES = libCruceGame.la libNetworking.la libCruceGameCurses.la libMultiplayerCurses.la
bin_PROGRAMS = cruceGame
cruceGame_SOURCES = cruceGame.c
cruceGame_LDADD = libCruceGame.la libNetworking.la libCruceGameCurses.la libMultiplayerCurses.la
cruceGame_LDFLAGS = -lncursesw -lpthread
libCruceGame_la_SOURCES = libCruceGame/deck.c \
libCruceGame/team.c \
libCruceGame/round.c \
libCruceGame/game.c
libNetworking_la_SOURCES = networking/network.c
libCruceGameCurses_la_SOURCES = cruceGameCurses/main.c \
cruceGameCurses/cli.c
libMultiplayerCurses_la_SOURCES = multiplayerCurses/main.c \
multiplayerCurses/cli.c \
multiplayerCurses/ircHandlers.c
你可以在这里找到项目(查看开发分支):https://github.com/danij/CruceGame 我试图将cruceGameCurses和multiplayerCurses打包到库中,但它使用了libCruceGame。当我使用这个makefile时,我收到有关未经过限制的libCruceGame函数引用的错误。 所以,我的问题:如何将libCruceGame添加到LDFLAGS? PS这个项目不是由我写的,我只是贡献,我是图书馆里的初学者。
答案 0 :(得分:2)
尝试更改此行:
cruceGame_LDFLAGS = -lncursesw -lpthread
到此:
cruceGame_LDFLAGS = -lncursesw -lpthread -L/directory/your/lib/is/in -lname
其中 name 是库文件名的中间部分。也就是说,如果文件是 libfoo.a 或 libfoo.so ,那么与-l
选项一起使用的名称就是<强> FOO 强>