发布时间:2022-09-17 17:30
为了实现一个项目调用另一个项目中的代码,需要被调用项目能够生成 .lib文件。
VS2019通过如下方法创建项目即可:
输入项目名称、选择存储地址,点击创建:
选择 .lib静态库 和 空项目
创建好项目后,完成代码进行编译运行,我的代码是C语言实现的Stack栈,编译运行后在该项目的Debug目录下就可以看到 .lib文件。
以上就是被调用库的生成,这里是实现的C语言代码库,接下来在创建一个Cpp程序,让该Cpp程序调用C库。
把C语言程序的头文件引用过来,然后用 extern "C",如下
extern "C"
{
#include "../../Stack/Stack/Stack.h"
}
//C++项目调用C库
然后配置两个地方,
右键项目名称->点击属性:
点击:链接器 -> 常规 ->找到附加库目录
点进去,然后添加一个目录,
选择调用的C语言项目对应的Debug目录,就是上面生成 .lib文件的那个目录
选择输入,在附加依赖项中添加一个你要调用的 .lib文件的名称,我这里是 Stack.lib
以上就完成了C++项目调用C语言库。
C语言调用C++库还是需要上面的配置,只不过对引用的 .h文件不需要使用extern "C"修饰,需要去被调用的C++库对应的项目里去修饰,接下来展示如何去修改被调用的C++库。
我将刚刚被调用的C语言库的文件从 .c变成 .cpp文件。
然后将头文件中所有被调用函数的声明用 extern "C"来修饰,这样即可以实现C语言调用C++库。