条件编译来使得c++项目中的代码按照c的规则来编译链接 但是c项目要包含c++静态库的头文件 那么就会在预处理的时候头文件展开 那么c项目中就也会有 extern “C” 这是不可以的 只有c++才可以识别extern “C” c是识别不了的 会报错!!!目录一、c++项目如何调用c的库(以静态库为例)1.将栈的源文件和头文件拷贝一份到Stack_c.lib这个项目的路径下2.打包成静态库3.建立一个c++项目(TestStacklib)引入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++静态库之间相互调用的实战案例
基础教程推荐
猜你喜欢
- C语言 structural body结构体详解用法 2022-12-06
- C/C++编程中const的使用详解 2023-03-26
- C语言基础全局变量与局部变量教程详解 2022-12-31
- 一文带你了解C++中的字符替换方法 2023-07-20
- C利用语言实现数据结构之队列 2022-11-22
- 详解c# Emit技术 2023-03-25
- 如何C++使用模板特化功能 2023-03-05
- C++使用easyX库实现三星环绕效果流程详解 2023-06-26
- C++详细实现完整图书管理功能 2023-04-04
- C++中的atoi 函数简介 2023-01-05