Makefile是一个被广泛应用于Linux系统中的构建工具,它可以帮助开发者自动化编译、链接和安装程序,省去了手动操作的繁琐。而在Linux系统中,Shared Object(.so)文件被用来实现动态链接,使得程序可以在运行时动态加载共享库,提高了程序的可维护性和灵活性。在C语言开发中,Makefile和.so文件的使用是非常常见的。
在Linux系统下,开发者使用C语言进行编程时常常会遇到            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-04-07 10:10:17
                            
                                90阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Linux是一种开放源代码的操作系统,为用户提供了一个稳定、可靠的运行环境。在Linux系统中,有一种重要的技术叫做动态链接库(Dynamic Link Library,简称为SO文件),它可以帮助开发者在编写程序时提高代码的复用性和灵活性。在Linux系统中,C语言是一种常用的编程语言,而在C语言中调用SO文件也是一种常见的操作。
在Linux系统中,使用C语言调用SO文件的过程大致可以分为以            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-03-08 11:31:14
                            
                                360阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            在Linux系统中,红帽是一款备受推崇的操作系统。它是基于Linux内核开发的一个自由及开放源代码的操作系统。而在软件开发方面,Eclipse和C语言则是非常重要的工具和编程语言,它们在开发各种类型的应用程序时都起着重要的作用。同时,SO(Shared Object)是一种在Linux系统下常用的共享库文件的格式。下面将详细介绍红帽系统、Eclipse、C语言和SO的相关信息。
首先,红帽系统是            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-04-08 09:47:04
                            
                                73阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            方法一 但这样能看到所有的导出,乱七八糟的很多,筛选用: 方法二 `objdump tT .so`            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2020-02-24 11:26:00
                            
                                1844阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            # 如何在Linux上编译Android so
## 1. 流程概述
编译Android so的过程可以分为以下几个步骤:
```mermaid
erDiagram
    编译Android so --> 下载Android源码
    编译Android so --> 配置编译环境
    编译Android so --> 编译源码
    编译Android so --> 生成Andr            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-02-04 07:15:30
                            
                                151阅读
                            
                                                                             
                 
                
                             
         
            
            
            
              VC导出类得创建和使用
 一、DLL的不同类型
    使用MFC可以生成两种类型的DLL:MFC扩展DLL和常规DLL。常规DLL有可以分为动态连接和静态连接。Visual C++还可以生成WIN32 DLL,但不是这里讨论的主要对象。
1、MFC扩展DLL
   每个DLL都有某种类型的接口:变量、指针、函数、客            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2010-11-21 13:28:38
                            
                                3477阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、DLL的导出1、新建一个控制台DLL项目2、添加.h,.cpp.h中:#define DllExport   __declspec( dllexport )class DllExport C {public:int funcAdd(int a,int b);int funcSub(int a, int b);};.cpp中:#include            
                
                    
                        
                                                                            
                                                                                        原创
                                                                                    
                            2021-07-29 09:31:59
                            
                                2242阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # 用Frida工具导出iOS应用中的.so文件
在本篇文章中,我们将深入探讨如何使用Frida工具从iOS应用中导出.so文件。经过这篇教程,您将了解到整个流程、必要的代码以及其背后的原理。接下来,我们先对整个流程进行一个简单的梳理。
## 流程概述
以下是导出.so文件的基本步骤:
| 步骤  | 描述                       | 备注            
                
         
            
            
            
            最近比较好奇为什么dlsym要传入的函数名这么奇怪,于是就调研了一下Android中是怎么样允许So中的函数符号导出。。。好吧有这么个东西,是用来说明这个function的visibility的。。。<pre name="code" class="plain"><pre name="code" class="cpp">__attribute__ ((visibility (            
                
         
            
            
            
            最近项目中用到了java调用linux系统下c的so动态库的需求,实现后我就来总结一波实现方式:1.java使用jni调用so库: 需要自己定义native方法,编译.h文件,编写c文件,在linux上编译为so文件,巴拉巴拉。。。 总之比较繁琐,而且写java的去写c,你懂得。。。 2.对jni做了封装的JNA方法: 将c中的类型与Java中的类型做了映射,只需要写一个类,类中的接口extend            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-16 20:29:46
                            
                                161阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Linux中的so文件(Shared Object)是共享库文件,它包含了可以被其他程序调用的函数和变量。在Linux系统中,so文件的使用非常普遍,特别是在软件开发中。这些so文件可以被动态链接到可执行文件中,提供程序所需的功能。
在Linux系统中,常常会出现一个so文件调用另一个so文件的情况。这种情况通常发生在一个so文件依赖另一个so文件提供的功能或者库。这种依赖关系是非常常见的,尤其            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-03-15 11:07:55
                            
                                557阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Linux操作系统由于其开源的特性,让许多软件工程师和开发者热爱这个操作系统。其中的一个重要组成部分就是Linux内核,它由Linus Torvalds在1991年首次发布。Linux内核实现了POSIX标准和UNIX系统调用接口,使其可以运行大多数UNIX应用程序和工具。
在Linux系统中,有不同的发行版,比如Ubuntu、Debian、CentOS等。而在这些众多的发行版中,有一个备受关注            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-04-07 10:27:34
                            
                                58阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Linux系统调用动态链接库(so)是开发中常用的一种技术手段。Linux系统下,动态链接库(so)是一种可共享的代码库,能够被多个程序引用和加载,从而减少了不同程序之间重复代码的存储和加载,提高了代码的复用率和执行效率。
在Linux系统中,动态链接库通常以.so文件的形式存在。要让程序能够调用这些动态链接库,需要使用系统调用。系统调用是操作系统提供给应用程序的接口,用于访问操作系统的功能和服            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-03-06 11:01:46
                            
                                263阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            有两种方式:1.使用objdump命            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-09-19 13:40:39
                            
                                4994阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            SO_RCVTIMEO, SO_SNDTIMEO介绍 套接字选项SO_RCVTIMEO: 用来设置socket接收数据的超时时间; 套接字选项SO_SNDTIMEO: 用来设置socket发送数据的超时时间; 比如,一般情况下,调用accept/connect/send/recv, 进程会阻塞,但是 ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-07-24 16:56:00
                            
                                466阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            //testlib.c中的内容: #include <stdio.h>int sum(int a, int b){    return a + b;} int minus(int a, int b){    return a - b;}  //main.cs中的内容: using System;using System.Runtime.InteropServices; public c            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-09-17 17:47:00
                            
                                3189阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            C# datagridview 导出EXCEL 类datagridview里的数据导出到excel里.网上搜了一下,有            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-09-07 08:00:03
                            
                                202阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            红帽(Red Hat)是全球领先的企业级开源软件解决方案提供商,总部位于美国北卡罗来纳州罗利市。作为Linux系统的主要发行版之一,红帽公司在操作系统市场上占据着不可忽视的地位。其旗下的Red Hat Enterprise Linux(RHEL)是一款基于开源社区项目构建的商业操作系统,广泛应用于企业领域。
在Linux操作系统中,C语言是一种非常重要的编程语言,被广泛应用于系统编程和应用程序开            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-03-11 09:42:06
                            
                                59阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Linux操作系统(Linux OS)被广泛认为是红帽(Red Hat)公司最成功的产品之一。红帽公司是一家总部位于美国的知名开源软件公司,其旗下的红帽企业Linux操作系统(Red Hat Enterprise Linux,简称RHEL)是业界领先的企业级Linux发行版之一。下面我们将从Linux操作系统和红帽公司的角度来讨论这两者之间的密切关系。
首先,Linux操作系统是一种自由和开放源            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-03-08 10:06:11
                            
                                30阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            在Linux操作系统中,动态链接库和静态链接库是非常重要的概念。这些库文件在程序编译和运行过程中起着至关重要的作用。在Linux系统中,动态链接库一般使用“.so”(Shared Object)文件扩展名,而静态链接库一般使用“.a”(Archive)文件扩展名。
动态链接库和静态链接库的主要区别在于它们在程序链接的时间和程序运行的方式。动态链接库在程序编译的时候并不会被链接到可执行文件中,而是            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-02-20 10:08:17
                            
                                112阅读