powerpc-linux-gcc,关于powerpc-linux-uclibc-gcc的使用
做了點東西需要使用linux下ldap庫,我裝的linux上已經有ldap庫,在程序中#include?了。
用gcc編譯時:gcc?filename.c,會報找不到ldap.h文件以及ldap.h文件中相關函數的錯誤
但是使用gcc?filename.c?-lldap,就能夠編譯通過了。
后來要求使用powerpc-linux-uclibc-gcc來進行編譯那個文件,
結果發生奇怪的事,使用powerpc-linux-uclibc-gcc?filename.c?-lldap編譯,
竟然也找不到ldap.h文件以及ldap.h文件中相關函數的錯誤。
擔心是powerpc-linux-uclibc-gcc不支持-l這個選項,
有隨便寫了一個包括pthread_create函數的程序,
用powerpc-linux-uclibc-gcc?filename.c?-lpthread編譯竟然通過了。
為什么呢?小女子才疏學淺,希望各位高手予以指教,先謝過。
|
做了點東西需要使用linux下ldap庫,我裝的linux上已經有ldap庫,在程序中#include?了。
用gcc編譯時:gcc?filename.c,會報找不到ldap.h文件以及ldap.h文件中相關函數的錯誤
但是使用gcc?filename.c?-lldap,就能夠編譯通過了
這是因為雖然你包含了頭文件但是,你并沒有連接庫文件,所以編譯的時候要-lldap
后來要求使用powerpc-linux-uclibc-gcc來進行編譯那個文件,
結果發生奇怪的事,使用powerpc-linux-uclibc-gcc?filename.c?-lldap編譯,
竟然也找不到ldap.h文件以及ldap.h文件中相關函數的錯誤。
這應該是因為,powerpc-linux-uclibc-gcc的庫中不包含ldap.h以及其中定義的相關函數
至于:
用powerpc-linux-uclibc-gcc?filename.c?-lpthread編譯竟然通過了。
這是因為,你連接了POSIX的多線程庫pthread,在你的powerpc-linux-uclibc-gcc?中有包含該庫。
|
哦??我知道了
我想問下??你為什么不用gnu的那套工具鏈
我給你看看這個東西吧??這是我的一個動態庫的例子?和你的差不多?只不過是用gnu工具鏈生成的
libscholar_la_CPPFLAGS?=?$(AM_CPPFLAGS)?-I../../postagger/src?-I/usr/include/libxml2?-I/usr/local/include/maxent?-I/usr/include(-I?就是頭文件路徑)
libscholar_la_LDFLAGS?=?$(AM_LDFLAGS)?-L/usr/local/lib?-L/usr/local/include(-L?動態庫路徑)
libscholar_la_LIBADD?=?-lpthread?-liconv?-lxml2?-lmaxent?-lz?-lg2c?-lpostagger?-limconfman??(-l?動態庫名字)
這和你的手寫編譯命令的那種方式一樣的,你可能缺了-L(動態庫路徑),一般來說這些路徑是不用自己去找的,可以用命令(前提是有pkg-config軟件)?pkg-config?--cflags?glib-2.0(庫名字)?和??pkg-config?--libs?glib-2.0?獲得,自己找會找死人,鬼知道它裝在哪
總結
以上是生活随笔為你收集整理的powerpc-linux-gcc,关于powerpc-linux-uclibc-gcc的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全文检索Elasticsearch研究
- 下一篇: linux 连接wifi wpa2,RH