条件编译来使得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语言中sizeof如何在自定义函数中正常工作 2023-04-09
- C++ 数据结构超详细讲解顺序表 2023-03-25
- Easyx实现扫雷游戏 2023-02-06
- C语言详解float类型在内存中的存储方式 2023-03-27
- 我应该为我的项目使用相对包含路径,还是将包含目录放在包含路径上? 2022-10-30
- c++ const 成员函数,返回一个 const 指针.但是返回的指针是什么类型的 const? 2022-10-11
- C语言手把手带你掌握带头双向循环链表 2023-04-03
- C语言qsort()函数的使用方法详解 2023-04-26
- ubuntu下C/C++获取剩余内存 2023-09-18
- Qt计时器使用方法详解 2023-05-30