我有一个名为 libtaskres.so 的自定义库,我在 / usr / lib / procman 中安装。我的Makefile构建我的程序:
gcc -c procman.c -o obj/procman.o
gcc -c procman_power.c -o obj/procman_power.o
gcc -c procman_sched.c -o obj/procman_sched.o
gcc obj/procman.o obj/procman_power.o obj/procman_sched.o -o procman -ltaskres
但只要我make
,链接器就会返回以下错误:
/usr/bin/ld: cannot find -ltaskres
collect2: error: ld returned 1 exit status
make: *** [procman] Error 1
但是,我确实使用ldconfig
:$ cat /etc/ld.so.conf.d/procman.conf
/usr/lib/procman
:$ ls /usr/lib/procman/
total 24K
24K -rw-r--r-- 1 root root 21K 2013-Oct-31 15:06:14 libtaskres.so
我也查了一下:
:$ ldconfig -v | grep libtaskres
libtaskres.so -> libtaskres.so
我做错了什么?如果我将-L / usr / lib / procman添加到链接器参数中,它似乎找到它,但我不应该需要它,对吧?
答案 0 :(得分:2)
ld.so.conf
文件(及其ld.so.conf.d
中的子配置)用于运行时加载程序,而不是链接器。
链接时仍需要使用-L
选项。