2010-06-16 41 views
2

嘿,我是一個真正的gcc newbee,所以如果這是一個愚蠢的問題,請原諒我。未定義的引用和靜態庫的奇怪內容

我想在android中使用opencv,因此嘗試將它編譯爲一個靜態庫,它在android ndk構建過程中用於構建我打算用於我的android應用程序的共享庫。 statc庫的構建工作正常,但是在構建共享庫時,我會收到有關未定義引用的投訴。由於文件似乎是正確編譯,其中包括我AR -TV檢查,看到以下內容:

---------  0/0   27304 Jun 16 18:15 2010/ 
---------  0/0   24 Jan 1 01:00 1970 // 
rw-r--r--  501/501  11192 Jun 16 18:13 2010 cxalloc.o/ 
rw-r--r--  501/501  289760 Jun 16 18:13 2010 cxarithm.o/ 
rw-r--r--  501/501  197368 Jun 16 18:13 2010 cxarray.o/ 
rw-r--r--  501/501  335112 Jun 16 18:13 2010 cxcmp.o/ 
rw-r--r--  501/501  422872 Jun 16 18:13 2010 cxconvert.o/ 
rw-r--r--  501/501  127160 Jun 16 18:13 2010 cxcopy.o/ 
rw-r--r--  501/501  191208 Jun 16 18:13 2010 cxdatastructs.o/ 
rw-r--r--  501/501  141536 Jun 16 18:13 2010 cxdrawing.o/ 
rw-r--r--  501/501  170936 Jun 16 18:13 2010 cxdxt.o/ 
rw-r--r--  501/501  29008 Jun 16 18:13 2010 cxerror.o/ 
rw-r--r--  501/501  48304 Jun 16 18:13 2010 cximage.o/ 
rw-r--r--  501/501  23376 Jun 16 18:13 2010 /0 
rw-r--r--  501/501  61024 Jun 16 18:13 2010 cxlogic.o/ 
rw-r--r--  501/501  39520 Jun 16 18:13 2010 cxlut.o/ 
rw-r--r--  501/501  122064 Jun 16 18:14 2010 cxmathfuncs.o/ 
rw-r--r--  501/501  600368 Jun 16 18:14 2010 cxmatmul.o/ 
rw-r--r--  501/501  135824 Jun 16 18:14 2010 cxmatrix.o/ 
rw-r--r--  501/501  140464 Jun 16 18:14 2010 cxmean.o/ 
rw-r--r--  501/501  339224 Jun 16 18:14 2010 cxmeansdv.o/ 
rw-r--r--  501/501  118208 Jun 16 18:14 2010 cxminmaxloc.o/ 
rw-r--r--  501/501  497760 Jun 16 18:14 2010 cxnorm.o/ 
rw-r--r--  501/501  119712 Jun 16 18:14 2010 cxouttext.o/ 
rw-r--r--  501/501  346624 Jun 16 18:14 2010 cxpersistence.o/ 
rw-r--r--  501/501  1688 Jun 16 18:14 2010 cxprecomp.o/ 
rw-r--r--  501/501  86856 Jun 16 18:14 2010 cxrand.o/ 
rw-r--r--  501/501  242768 Jun 16 18:15 2010 cxsumpixels.o/ 
rw-r--r--  501/501  82320 Jun 16 18:15 2010 cxsvd.o/ 
rw-r--r--  501/501  102024 Jun 16 18:15 2010 cxswitcher.o/ 
rw-r--r--  501/501  5968 Jun 16 18:15 2010 cxtables.o/ 
rw-r--r--  501/501  43720 Jun 16 18:15 2010 cxutils.o/ 

有兩條線,我不明白,第二個與1970年的日期和一個用\ 0作爲文件名。我也想知道,因爲nm不返回任何東西。當我嘗試randlib我得到:

ranlib: warning for library: libcxcore.a the table of contents is empty (no object file members in the library define global symbols) 

應該在\ 0的位置圖中的文件是規定不能被引用的一個功能之一。

我在OS X 10.6和Ubuntu 10.04下試過這個。

有關這方面的任何見解或我能做些什麼來發現問題?

回答

0

也許你用來創建靜態庫的命令是錯誤的?你應該使用「ar -rs」。 「s」選項創建一個索引表。這可能是你的問題?

+0

原來它在ubuntu中工作,不知道os x中有什麼問題 – berliner 2010-07-14 00:45:37