C语言调用C++静态库

  • 生成C++静态库
    hello.h文件
#ifndef HELLO_H
#define HELLO_H

#ifdef __cplusplus
extern "C"{
#endif
void hello(void);
#ifdef __cplusplus
};
#endif

hello.cpp文件

#include 
#include "hello.h"
void hello()
{
  printf("hello ,this is c++ library\n");
}
  • 将cpp文件生成静态库
g++  -c hello.cpp  -o hello.o
ar rsc libhello.a hello.o
  • C语言测试文件
    hello_test.c
#include 
#include "hello.h"
int main(void)
{
printf("begin to use libary\n");
hello();
return 0;
}
  • C语言调用C++静态库过程
    • 使用gcc将C文件只编译不连接,生成.o文件
    • 使用g++将.o文件和静态库文件进行连接
gcc  -c hello_test.c  -o hello_test.o

g++  -o hello_static hello_test.o -L. libhello.a

你可能感兴趣的:(C)