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文件时,最终项目可能会链接到某个依赖于其他库的库,这些库对其他库具有依赖关系,即,使用静态库来编译每个项目,我需要重复链接相同的库,并且在使用共享库不是 –