作者WalkingIce ( 杀手哥吉拉 13)
看板LinuxDev
标题Re: [问题] -l 和 -L 之用法
时间Tue Sep 22 02:29:30 2009
※ 引述《godman362 (青)》之铭言:
: 关於这个问题,我已经有参考过版上的#43篇文章
: 不过仍有些疑问想提出来
: 假设,在我的/usr/lib或是/lib中有一个libpng.a
: 这个是适用於X11的lib
: 而我有自行cross compile一个libpng.a,是放在/home/username/lib中
: 那我实际上要用的,是我自行编译的lib
: 也就是放在/home/username/lib中自行编译的lib
: 所以我应该作下列哪一种的编译方式:
: 一、
: gcc -o png png.c -L/home/username/lib -lpng
: 二、
: gcc -o png png.c -L/home/username/lib
: 三、
: gcc -o png png.c -lpng -L/home/username/lib
: 还请各位先进指点一下,谢谢
-L 是增加搜寻路径,会摆在预设的搜寻路径前面
man gcc 看 LIBRARY_PATH 的部份
GCC also uses these directories when searching for ordinary
libraries for the -l option (but directories specified with -L come first).
所以不论哪一种都可以动!
其实你也可以直接指定你的 libpng.a
gcc -o png png.c /path/to/your/libpng.a
--
有一天小明跟朋友打牌,有张牌不小心掉进水里。此时女神出现了
女神:「你掉的是这张红中,还是这张白板?」
小明:「都不是,我掉的是青发。快还我吧大婶,我缺那张牌就自摸了」
女神:「.................(不爽)」
「你真是诚实的好孩子,红中跟白板都送你吧」
於是小明就相公了。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.57.131.211
1F:推 godman362:那假设我输入:gcc -o png png.c -lpng 09/22 10:10
2F:→ godman362:这样的话,他是否直接去找系统预设,而非我自己编译的 09/22 10:11
3F:推 phterry:gcc -o png png.c -lpng (不管有没有加-L) 是dynamic link 09/22 13:09
4F:→ phterry:也就是说,gcc会去找libpng.so,而不是libpng.a 09/22 13:10
5F:→ phterry:此文最後一行 gcc -o png png.c /path/to/your/libpng.a为 09/22 13:12
6F:→ phterry:正解 09/22 13:12
7F:推 zwai:-l是dynamic link,*.a是static link用的lib~~ 09/22 23:07
8F:推 godman362:原来如此,谢谢各位的解答 09/23 03:49
9F:推 aguai:走冰...........!!! 09/25 03:39