在你描述的场景中,出现 undefined reference to 'process' 和 undefined reference to 'total_received' 的错误是因为这些符号在链接时未能找到。这通常是由于某些文件未被正确添加到构建过程中,或者这些符号的定义和声明不匹配导致的。
你提到 interface.o 和 file.o 被链接生成 libfile.so 动态库。由于错误提示 libfile.so 中没有找到 process 和 total_received 符号,可以通过以下步骤逐步解决问题:
1. 确保`interface.o`被正确包含到构建命令中:
确保在创建 libfile.so 时包含了 interface.o 文件。查看构建 libfile.so 的命令,确保 interface.o 被正确包含。
gcc -shared -o libfile.so file.o interface.o
2. 检查是否正确声明了`process`和`total_received`:
确保在适当的头文件中声明了 process 和 total_received。
// 在某个公共头文件中进行声明,比如 file.h
#ifndef FILE_TRANS_H
#define FILE_TRANS_H
标签:received,process,libfile,C语言,interface,so,动态链接库,total,链接
From: https://blog.csdn.net/eidolon_foot/article/details/142533112