linux dll 调用

本文详细介绍了在Linux环境下如何进行动态链接库(DLL,即.so文件)的创建、使用和调用,包括编译动态库、在应用程序中链接动态库以及解决依赖问题等关键步骤。通过实例解析,帮助读者深入理解Linux下的DLL调用机制。
摘要由CSDN通过智能技术生成
// r.c

#include <stdio.h>
// gcc -shared r.c -o r.so -m32
char* a(double d) 
{
    printf("r.c: %f\n", d * d);
    return "hello";
}
// runso.c

#include <stdio.h>
#include <dlfcn.h>
//  gcc runso.c -o runso -ldl -m32
// ./runso ./r.so a d3.0 d
// ./runso ./r.so a d3.0 s

#define SETUP_STACK \
    i =2;   \
    while(++i < argc -1) {  \
        switch(argv[i][0]) {    \
        case 'i': \
            asm volatile("push %0" ::   \
            "r"(atoi(&argv[i][1]))); \
            esp += 4; \
            break; \
        case 'd': \
            atof(&argv[i][1]); \
            asm volatile("subl $8, %esp\n" \
            "fstpl (%esp)"); \
            esp += 8; \
            break; \
        case 's': \
            asm volatile("push %0" :: \
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值