C++程序调用C语言库的解决方案(开发61850程序时遇到)

2012-08-29

    今天准备测试一下61850的lib是否可用,随即新建一个工程,将头文件和库文件全部添加进去,发现链接失败。mytest.cpp中需要用到lib中的一个变量,在库的头文件中没有声明该变量,在mytest.cpp中已经声明。

    错误代码为:error LNK2001: unresolved external symbol

    测试中发现时无法链接到lib库,当前程序文件为mytest.cpp,当修改程序文件为mytest.c时,就可以完成链接,没有报错。后面查了一下,该lib是C语言编写,可能是C++的程序不能直接调用C语言的lib

解决方法:

    在网上查找了一下,C++调用C语言库时需要用到 extern "C" {}

       http://wenku.baidu.com/view/80e11c4733687e21af45a9aa.html

       http://www.cnblogs.com/jamesmile/archive/2010/10/19/1855469.html 


最后在mytest.cpp中加入extern "C" {},将需要用到的变量声明写入{}内即可。

或者在头文件中直接包含变量声明也行(不加extern "C")。因为头文件中已经加入

#ifdef __cplusplus
extern "C" {
#endif

所以可以直接使用


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值