C/C++ C++调用用C库函数理解

Posted ljymoonlight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
}
`

本文来自博客园,作者:ljymoonlight,转载请注明原文链接:https://www.cnblogs.com/ljymoonlight/p/15216919.html

以上是关于C/C++ C++调用用C库函数理解的主要内容,如果未能解决你的问题,请参考以下文章

linux下intel的mkl编程代码,怎么样编译。C++和C语言代码

main函数可否进行递归调用

如何让python调用C和C++代码

深入理解TVM:Python/C++互调(下)

c++ 全局静态函数的理解

Java调用C++动态链接库dll,有详细过程。VS2015+Eclipse以及失败解决方案