c/c++静态库之间相互调用的实战案例

目录一、c++项目如何调用c的库(以静态库为例)1.将栈的源文件和头文件拷贝一份到Stack_c.lib这个项目的路径下2.打包成静态库3.建立一个c++项目(TestStacklib)引入c项目中...

条件编译来使得c++项目中的代码按照c的规则来编译链接 但是c项目要包含c++静态库的头文件 那么就会在预处理的时候头文件展开 那么c项目中就也会有 extern “C” 这是不可以的 只有c++才可以识别extern “C” c是识别不了的 会报错!!!

那么如何解决 ? 条件编译这个时候就派上大用处了

下面还有一个简化版的条件编译

//简化版
#ifdef __cplusplus
extern "C"
{
#endif

 void StackInit(stack* pst);
 void StackDestory(stack* pst);
 void StackPush(stack* pst,STDataType x);
 void StackPop(stack* pst);
 bool StackEmpty(stack* pst);
 int StackSize(stack* pst);
 STDataType StackTop(stack* pst);

#ifdef __cplusplus
}
#endif

之后就是 然后 通过调用cpp静态库里的栈的函数解决 运行成功就说明c项目链接c++的静态库成功

2.建立c项目

3.包含静态库的头文件

4 .添加打包的cpp动态库到附加库目录 设置依赖项

然后就大功告成了 ,如果没有差错就可以直接运行成功了。

这里需要注意的是 要记得使用静态库前完成了准备工作后一定要生成解决方案后再在来调用库!

总结

到此这篇关于c/c++静态库之间相互调用的文章就介绍到这了,更多相关c/c++静态库间相互调用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

本文标题为:c/c++静态库之间相互调用的实战案例

基础教程推荐