读书人

C++ 与C的混和编译有关问题(linux)

发布时间: 2012-05-28 17:59:33 作者: rapoo

C++ 与C的混和编译问题(linux)
in crc16.cpp 中我实现了BufferCrc16函数.
crc16.cpp crc16.h我编译成了crc16.o文件.

in sec.c中我引用 crc16.h 在这里面我我调用BufferCrc16函数(这个函数是在cpp中实现的).我把整个工程都编译成libsec.so(可以成功编译),但是这个这个libsec.so参与其它程序编译时
报了/home/feel/Online/lib/libSec.so: undefined reference to `BufferCrc16'链接的错?

[解决办法]
C++导出, extern "C"定义导出函数.
C++引用, extern "C"声明导入函数.
C引用, extern声明导入函数.
[解决办法]
生成的符号不同而已,凭什么要报错?

nm xx.so 自己看看导出符号是不是原先那么干净的函数名了?

读书人网 >C++

热点推荐