【发布时间】:2015-11-01 18:59:30
【问题描述】:
我无法将我的程序“set-manipulation”与它需要的库链接起来。
这是消息:
gcc -L/home/jenia/learn-c-the-hard-way/lib -lset_theory -g -Wall -I/home/jenia/learn-c-the-hard-way/lib/include -o "set-manipulation" main.o
/usr/bin/ld: cannot find -lset_theory
collect2: error: ld returned 1 exit status
Makefile:9: recipe for target 'set-manipulation' failed
make: *** [set-manipulation] Error 1
这里是-L/home/jenia/learn-c-the-hard-way/lib的内容:
/home/jenia/learn-c-the-hard-way/lib:
total used in directory 29 available 216513716
drwxr-xr-x 3 jenia jenia 4096 Nov 1 12:47 .
drwxr-xr-x 8 jenia jenia 4096 Oct 31 11:44 ..
drwxr-xr-x 2 jenia jenia 4096 Nov 1 12:47 include
-rwxr-xr-x 1 jenia jenia 6804 Nov 1 12:47 set_theory.a -- 50
-rwxr-xr-x 1 jenia jenia 9664 Nov 1 12:47 set_theory.so -- 11
这是给出错误的makefile(set-manipulation程序的makefile):
PREFIX?=/home/jenia/learn-c-the-hard-way
CFLAGS=-g -Wall -I${PREFIX}/lib/include
LDFLAGS=-L${PREFIX}/lib
INSTALL_DIR=${PREFIX}/apps
all: set-manipulation
set-manipulation: main.o
gcc $(LDFLAGS) -lset_theory $(CFLAGS) -o "$@" main.o
install: all
install -d $(INSTALL_DIR)/set-manipulation
install set-manipulation $(INSTALL_DIR)/set-manipulation
clean:
rm -f *.o
rm -f set-manipulation
rm -rf *.dSYM
有人可以告诉我如何将我的程序与它的库链接吗?
【问题讨论】:
-
如果你还没有解决它,试试看这个帖子stackoverflow.com/questions/1705961/…
-
为什么这被标记为 C++?