C程序调用C++库函数, C++动态库编译

C程序调用C++库函数

C++库编写

头文件

/* lsq.h start*/
#ifndef LSQ_M_H
#define LSQ_M_H
#include
#include <stdarg.h>
using namespace std;
class lsq
{
public:
void debug(const char str);
};
#endif
/
lsq.h end*/

cpp文件

/* lsq.cpp start */
#include “lsq.h”
void lsq::debug(const char str)
{
cout << str << endl;
}
/
lsq.cpp end */

C++库转换接口

头文件

/* lsq_api.cpp start*/

#include “lsq.h”
#ifndef _cplusplus
#define _cplusplus
#include “lsq_api.h”
#endif
void debug(char* str)
{
lsq fnd_brk_pnt;
fnd_brk_pnt.debug(str);
}

/* lsq_api.h end*/

cpp文件

/* lsq_api.h start */

#ifndef L_M_H
#define L_M_H

#ifdef _cplusplus
extern “C”
{
#endif

void debug(char *d_a);

#ifdef _cplusplus
}
#endif

#endif

/* lsq_api.h end */

C文件

#include “lsq_api.h”

int main(void)
{
debug(“qq:927632640\n”);
return 0;
}

编译

g++ -c lsq.cpp
ar crv lsq_m.a lsq.o 编译成静态库
g++ -fpic -shared -g -o liblsp_api.so lsq_api.cpp lsq_m.a
gcc -o t test.c ./liblsp_api.so

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页