【发布时间】:2011-12-15 14:50:56
【问题描述】:
所以我有一个没有头文件的 .so 文件,我想编译代码和链接(长篇大论)
不管怎样,我得到了 objdump 来输出去错头文件
objdump -g -x -C libglo_crc.so
我得到这样的结果:
long int Calculate_Message_CRC__FUcPUc (int iLength /* 0x8 */, unsigned char *iMess /* 0xc */)
所以我知道这是错误的名称,我创建了一个这样的原型:
long int Calculate_Message_CRC(unsigned char, unsigned char *);
然后尝试调用 Calculate_Message_CRC 函数,但我总是以未定义的引用错误结束:
g++ test.cpp -L. -l glo_crc
undefined reference to `Calculate_Message_CRC(unsigned char, unsigned char*)'
我做错了吗?如果没有供应商提供的标头,我还能如何链接到这个库?
【问题讨论】:
-
您确定您正确复制了解构名称和原型的签名吗?如果是,那么你的原型与函数不匹配,因为它的第一个参数是
int而不是unsigned char -
看起来第一个参数是 int 而不是 char。
-
我尝试了 int 和 unsigned char,都没有成功。
-
-C 不应该解散吗?你确定这个库是用同一个编译器编译的吗?
标签: c++ header shared-libraries objdump