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
一切工作正常。