看板 LinuxDev 關於我們 聯絡資訊
※ 引述《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
godman362:那假設我輸入:gcc -o png png.c -lpng 09/22 10:10
godman362:這樣的話,他是否直接去找系統預設,而非我自己編譯的 09/22 10:11
phterry:gcc -o png png.c -lpng (不管有沒有加-L) 是dynamic link 09/22 13:09
phterry:也就是說,gcc會去找libpng.so,而不是libpng.a 09/22 13:10
phterry:此文最後一行 gcc -o png png.c /path/to/your/libpng.a為 09/22 13:12
phterry:正解 09/22 13:12
zwai:-l是dynamic link,*.a是static link用的lib~~ 09/22 23:07
godman362:原來如此,謝謝各位的解答 09/23 03:49
aguai:走冰...........!!! 09/25 03:39