首页 > 系统相关 >linux下开发so动态库

linux下开发so动态库

时间:2023-02-25 12:34:52浏览次数:35  
标签:include api void sayHello so linux test 动态

test.cpp

#include "test.h"


void Test::sayHello() {
    printf("hello, this method is in so.\n");
}

test.h

#ifndef JOHN_TEST_H
#define JOHN_TEST_H
#include <stdio.h>

class Test {
    public:
        void sayHello();
};

#endif

test_api.cpp

#include "test.h"
#include "test_api.h"

void api_sayHello() {
    Test test;
    test.sayHello();
}

test_api.h

#pragma once

#ifdef __cplusplus
extern "C" {
#endif

void api_sayHello();

#ifdef __cplusplus
}
#endif

build.sh

gcc -fpic -shared test.cpp test_api.cpp -o libtestapi.so

golang中调用so

main.go

package main

//#cgo LDFLAGS: -L. -ltestapi -lstdc++
//#cgo CFLAGS: -I../so-gcc
//#include "test_api.h"
import "C"

func test_api_sayHello() {
	C.api_sayHello()
}

标签:include,api,void,sayHello,so,linux,test,动态
From: https://www.cnblogs.com/jiftle/p/17154124.html

相关文章

  • Deepin 安装 Epson L3253 打印扫描
    系统:Deepin20.7设备:EpsonL3253驱动下载在网站:EPSONDownloadCenter(http://download.ebz.epson.net/dsc/search/01/search/searchModule)中选择型号和操作系统,我......
  • Nginx 前后端动态路径访问配置
    部分场景下一台测试服务器上部署多个前后端应用,需要多次更改nginx配置文件,如何配置一个即可动态访问?这里记录一下nginx正则表达式方式配置动态路径目录​​场景说明​​​......
  • Linux下Python搭建
    VMware14下载:https://blog.csdn.net/qq_31362105/article/details/80706096ctrol+d#退出python执行界面rpm-qa|grepchupinxiu#列出包含厨品秀字段的软件信息“ONBO......
  • LQB05 数码管动态扫描,显示字符串
    1、蓝桥杯51单片机开发板的数码管是共阳数码管;需要注意段码表的推导。掌握推导段码表。2、stcisp软件的数码管代码,是共阴的模式,注意取反的话,如何实现?3、定时器动态扫描......
  • 宝塔Linux面板+.net 6+自建服务如何部署网站?
    前面我们提到过宝塔linux面板+docker容器部署.net6网站的方式,需要了解的朋友可以参考我的文章《宝塔面板+.net6(asp.netcore6)+linux+Docker如何部署网站》,但是这种部署方......
  • 信息安全之linux服务器基线安全(等保要求参考)
    linux服务器基线安全(等保配置)备注:公司要求做服务器的基线安全配置,通过相关软件扫描出来结果,以下配置作为参考CU_OS_Linux_B_5.3.10_1限制root用户远程登录-telnet自动......
  • 信息安全之linux等保三级详细指导
    一、身份鉴别a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换;1、应核查用户在登陆时是否采用了身份鉴别措施;用户登录服务器......
  • The bean ‘api‘, defined in class path resource [com/common/swagger/SwaggerAuto
    Thebean‘api‘,definedinclasspathresource[com/common/swagger/SwaggerAutoConf1.解决办法-1将重复的bean覆盖掉加一个这个注解spring.main.allow-bean-definit......
  • java提供link;string转json
    java提供linkJSONObjectjsonObject=newJSONObject();jsonObject.put("type",1);resp.setLink(newLink(5,surveyId,"COLLE......
  • SpringBoot-使用链接字符串动态创建SqlSessionFactory执行任意SQL脚本
    SpringBoot-使用链接字符串动态创建SqlSessionFactory执行任意SQL脚本引言SpringBoot大大减少了使用XML配置的复杂性,但是想通过代码去实例化一个对象有点儿无从下手的感觉。......