3
爲什麼要建造靜態庫(.a)中沒有給出任何錯誤,並正常工作:大廈C動態共享庫給出了錯誤的符號
$(LIBRARY): assertion.o
$(AR) $(OUTPUT_STATIC_LIB_DIR)/$(LIBRARY) $(OUTPUT_DIR)/assertion.o
同時,建立共享庫時(的.so)給出我這樣的錯誤:
$(SHARED_LIBRARY): assertion.o
$(CC) $(CFLAGS) -shared -o $(OUTPUT_LIB_DIR)/$(SHARED_LIBRARY) $(OUTPUT_DIR)/assertion.o
錯誤消息:
Undefined symbols for architecture x86_64:
"_float_cmp_func", referenced from:
有問題的錯誤是一個OSX的事 - 你不能創建一個dylib /以便在默認情況下未綁定引用(你可以在linux中執行此操作)。 – Petesh
謝謝@Petesh澄清:) – mvidelgauz
如果我理解正確這意味着,當我有幾個項目,即輸出庫依賴於對方。與使用靜態庫相比,我將每個項目歸檔到.a文件中,然後使用這幾個庫(例如10個庫)的最終項目必須鏈接到此(例如10)庫。但是當我使用.so文件時,最終項目可能會鏈接到某個依賴於其他庫的庫,這些庫對其他庫具有依賴關係,即,使用靜態庫來編譯每個項目,我需要重複鏈接相同的庫,並且在使用共享庫不是 –