C调用函数类型错误

标签 c linker-errors undefined-reference

我正在尝试编译此代码,该代码从“libcfmapi.so”调用 func 来解密“cfg”文件

#include <stdlib.h>
#include <stdio.h>
int restorebackup(const char *tmp_cfg_name,const char *xml_cfg_name);
int ATP_CFM_ExtCustomImportEncryptedUserCfgFile(const char *tmp_cfg_name);
int main(int argc, char **argv)
{
int ret;
if(argc < 3)
{
printf("specify temp config file name.\n");
exit(1);
}
ret=restorebackup(argv[1],argv[2]);
return ret;
}
int restorebackup(const char *tmp_cfg_name,const char *xml_cfg_name)
{
int ret=0;
//ret = ATP_CFM_ExtDigVerifyFile(tmp_cfg_name,tmp_cfg_name);
if(ret != 0)
{
printf("Verify File failed.\n");
return ret;
}
ret = ATP_CFM_ExtCustomImportEncryptedUserCfgFile(tmp_cfg_name);
return ret;
}

但出现有关 func 类型声明的错误

root@kali:~/debian-qemu# gcc  h.c   -o demo
    /tmp/ccVbt5NT.o: In function `restorebackup':
    h.c:(.text+0x8c): undefined reference to `ATP_CFM_ExtCustomImportEncryptedUserCfgFile'
    collect2: error: ld returned 1 exit status

感谢任何帮助

最佳答案

您收到此错误的原因是您没有链接到所需的库 libcfmapi.so

这不是您期望在 Debian 系统中找到的库,因为它是您尝试破解的 BT 设备所独有的。

简而言之 - 从您的设备获取库,针对从设备中提取的库交叉编译到设备架构,应该没问题。

关于C调用函数类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39062844/

相关文章:

c - 使用函数来减少重复性

c - 初始化字符串时内存泄漏

c - 使用 cfitsio 库编译代码时 undefined reference

c++ - 未定义对 `typeinfo for class' 的引用

c++ - 什么是 undefined reference /未解析的外部符号错误以及如何修复它?

c++ - 什么是 undefined reference /未解析的外部符号错误以及如何修复它?

c - Sandy Bridge 上的 32 字节存储转发

c++ - 如何将 C++ 静态库链接到 C 程序?

android-studio - Android NDK - Android studio gradle 未定义对 __android_log_write 的引用

c++ - "Nonrepresentable section on output"在 Linux 上链接时出错