C/C++ C++调用用C库函数理解
之前一直没有怎么使用C++语言,最近常用之后,才发现自己基础是多么的薄弱。
- C++中调用C原因的库函数,算是比较基础的操作。 然后在网络上搜索一遍,理解如下:
`
C++调用C的静态库/动态库
C++调用C的函数比较简单,直接使用extern "C" {}告诉编译器用C的规则去调用C函数就可以了。
- 一开始理解: 编译时候在h,c文件中添加extern "C" { }, ; 但是怎么也无法编译通过。
- 原因: 在调用cpp中引用的头文件也要使用extern "C" {} ;
CAdd.h
int cadd(int x, int y);
1
CAdd.c
include "CAdd.h"
include <stdio.h>
int cadd(int x, int y) {
printf("from C function.\n");
return (x + y);
}
编译libCAdd.a
gcc -c CAdd.c # 生成CAdd.o
ar -r libCAdd.a CAdd.o # 归档生成libCAdd.a
1
2
编译动态库 libCAdd.so
gcc -shared -o libCAdd.so CAdd.c
1
cppmain.cpp
include <stdio.h>
extern "C" {
include "CAdd.h"
}
int main()
{
int sum = cadd(1, 2);
printf("1+2 = %d\n", sum);
return 0;
}
`
- 个人很懒,没有过多整理,只方便自己理解。
源代码转载于下面链接:
https://blog.csdn.net/bandaoyu/article/details/87447419
本文来自博客园,作者:ljymoonlight,转载请注明原文链接:https://www.cnblogs.com/ljymoonlight/p/15216919.html
posted on 2021-09-01 23:42 ljymoonlight 阅读(404) 评论(0) 编辑 收藏 举报