是的,我知道之前有很多人问过这个问题,但我仍然无法理解我的问题
我有2个库,让我们说liba& libb。 libb使用liba但是在.a中编译,所以它应该在编译时链接。 我有以下GCC命令:
gcc -o my_program obj/mymain.o obj/myutils.o liba/liba.a libb/libb.a -Iinclude -Iliba -Ilibb
但是海湾合作委员会正在给我回复很多"未定义的参考..."从libb函数到liba函数。
发生了什么事?我该怎么办?
谢谢
答案 0 :(得分:4)
评估>>Error while fetching pageviews From GA Google.Apis.Requests.RequestError
>>Quota Error: profileId ga:****** has exceeded the daily request limit. [403]
>>Errors [
>> Message[Quota Error: profileId ga:****** has exceeded the daily request >>>limit.] Location[ - ] Reason[dailyLimitExceeded] Domain[global]
>>]
编译命令的命令非常重要。
当编译器看到.o文件时,它们会自动添加到目标二进制文件中,因此存在所有.o文件。这留下了需要找到的未定义实体的列表。
下一步是浏览图书馆。搜索每个库,并将每个库中满足未定义引用的.o元素添加到目标二进制文件中。这总能解决一些问题。但是,它可能还有其他要求。因此,添加库的一部分可能会增加要满足的所需元素。
当一个库需要另一个库时,需要在需要它的东西之后,以及满足其要求的库之前指定它。
如果.o文件也需要库的相同部分,则有可能在从.o删除代码时删除此问题(删除拉入库部分的机制)。