日期:2014-05-16  浏览次数:20716 次

Makefile找不到 库 中的函数名
大家好,我编写了一个Makefile(内容如下),需要加载外面的三个.a文件,这个Makefile可以编译.cpp文件,可是到了链接的时候,总是出现错误,说找不到 某些函数,请问下为什么,我能保证 “找不到的”函数,在库中是有定义的,谢谢大家了!





IPC_DIR =./ipc
TARGET = main
CROSS_COMPILE= arm-linux-
C_FLAGS += -Wall -g -O3

CPP_FLAGS += -I./ipc -I.

LD_FLAGS += -lpthread

COMPILE.c = $(CROSS_COMPILE)g++ $(C_FLAGS) $(CPP_FLAGS) -c
LINK.c = $(CROSS_COMPILE)g++ $(LD_FLAGS) 

RELTARGET = $(TARGET)

RELCFLAGS = -fno-strict-aliasing

SOURCES = $(wildcard *.cpp)
HEADERS = $(wildcard *.h)

RELOBJFILES = $(SOURCES:%.cpp=%.o)

.PHONY: clean release install

all: release

release: $(RELTARGET)
#我是这样加载 库文件的。

$(RELTARGET): $(RELOBJFILES) AAA.a BBB.a CCC.a  
$(LINK.c) -o $@ $^ 


$(RELOBJFILES): %.o: %.cpp $(HEADERS) 
$(COMPILE.c) $(RELCFLAGS) -o $@ $<  

clean:
-$(RM) -f *.o *.d


------解决方案--------------------
$(LINK.c) -o $@ $^ 

试试把$^换成$*

$(LINK.c) -o $@ $*
------解决方案--------------------
试试link之前
 arm-linux-ranlib AAA.a
 arm-linux-ranlib BBB.a
 arm-linux-ranlib CCC.a