Qt 调用 C语言函数的一种解决方案 C++ 调用 C 语言函数

解决方法:将C语言函数打包成静态链接库

比如我们的课程设计需要自己用100M存储区模拟一个文件系统,那么我首先用纯C语言写出create、delete、write、read等等系统调用,然后用Qt写出一个界面来,界面操作均需要调用C 语言函数。

首先,写好C语言的函数,如图:Qt 调用 C语言函数的一种解决方案 C++ 调用 C 语言函数

然后打包成静态连接库,方法是先打包成.o文件,然后再打包成.a的静态链接库文件,具体方法百度。结果如图:

Qt 调用 C语言函数的一种解决方案 C++ 调用 C 语言函数

此时.a 文件已经可以被调用了,但是文件系统需要将核心程序再包装以下,需要一个.c文件来调用文件系统函数,和一个.h文件声明成C语言函数,如图:

Qt 调用 C语言函数的一种解决方案 C++ 调用 C 语言函数

.h文件如图,注意.h文件要加上extern "c"才可以,因为这向编译器说明该文件调用的是c语言,编译时才不会在标识符上增加_等等c++专有的标记。

Qt 调用 C语言函数的一种解决方案 C++ 调用 C 语言函数

此时可以#include “sysdirectory.h”了,注意编译的时候记着把静态库.a 文件也链接上去,负责无法调用成功