2016-01-16 116 views
0

我使用靜態庫,讓我們假設cityhash,我已經構建並安裝到/ usr/local/lib。我有一個使用cityhash,例如文件foo.cxx:GCC不鏈接靜態庫依賴關係(makefile)

// foo.cxx 
u64 get_hash(const std::string &s) { 
    return CityHash64(s.data(), s.size()); 
} 

我建立一個靜態庫從它:

gcc -c foo.cxx => foo.o 
ar rcs libfoo.a foo.a => libfoo.a 

我還有一個文件,bar.cxx,它採用foo.cxx和間接的CityHash功能。我編譯它,並用兩個libcityhash.a和libfoo.a類似下面的鏈接:

gcc -c bar.cxx => bar.o 
gcc -L. -o bar bar.o -lcityhash -lfoo 

但是,這並不工作,鏈接器抱怨說CityHash64是不確定的參考。哪裏不對?當我不做靜態庫libfoo.a一切工作正常。

回答