我有一个目标文件
这是我的Makefile:
main.o
,需要将其与位于./libsvm/libsvm.so.2
的共享库进行链接。以下是我的Makefile,但它对我无效。在-L./libsvm
中已经指定了库路径,但gcc -lsvm
仍然找不到共享库(libsvm.so.2
)。这是我的Makefile:
CC = g++ -g
CFLAGS = -Wall
HEADERS = -I./libsvm
OBJ = main.o
LIBS = -L./libsvm
all: lib $(OBJ)
$(CC) $(LIBS) -lsvm $(OBJ) -o main
%.o: %.c
$(CC) $(CFLAGS) $(HEADERS) -c -o $@ $<
lib:
cd libsvm; make
如果直接链接它们,它们就可以正常工作,例如:
ld main.o libsvm/libsvm.so.2 -o main
我想知道Makefile出了什么问题。错误信息如下:
g++ -g -L./libsvm -lsvm main.o -o main
ld: library not found for -lsvm
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [all] Error 1
cc -L/usr/local/lib -lsvm main.o -o main
这不是来自您的 makefile 的命令。libsvm.o
是否在/usr/local/lib
中? - Etan Reisner