学习静态链接库、动态链接库的创建

GCC 编译 C(C++)静态链接库(gcc -L、gcc -l)和动态链接库(3) gcc -fpic -shared 源文件名…ar rcs 静态链接库名称 目标文件1 目标文件2 … 阅读详情
momo@momo /home/momo/myfile/mydev/cc/socket/clien
% ll
总用量 68K
-rwxr-xr-x 1 momo momo  14K 10月 30 16:42 clien
-rwxr-xr-x 1 momo momo  14K 11月  2 15:19 clien_5
-rw-r--r-- 1 momo momo  592 11月  2 15:18 clien_5.c
-rw-r--r-- 1 momo momo  680 10月 30 16:42 clien.c
-rw-r--r-- 1 momo momo 2.1K 10月 30 16:42 clien.o
-rw-r--r-- 1 momo momo 1.5K 10月 24 09:15 func.c
-rw-r--r-- 1 momo momo 3.5K 10月 24 10:06 func.o
-rw-r--r-- 1 momo momo  238 10月 24 09:07 Makefile
-rw-r--r-- 1 momo momo 1.5K 10月 24 10:09 pack.c
-rw-r--r-- 1 momo momo 3.7K 10月 24 10:10 pack.o
-rw-r--r-- 1 momo momo 1.5K 10月 24 09:41 unp.h
17:40 momo@momo /home/momo/myfile/mydev/cc/socket/clien
% ar -crv libpackfunc.a pack.o func.o (生成静态链接库.a文件,静态库的名字以lib开头)
a - pack.o

a - func.o


17:40 momo@momo /home/momo/myfile/mydev/cc/socket/clien
% ls -trl
总用量 76
-rw-r--r-- 1 momo momo   238 10月 24 09:07 Makefile
-rw-r--r-- 1 momo momo  1478 10月 24 09:15 func.c
-rw-r--r-- 1 momo momo  1466 10月 24 09:41 unp.h
-rw-r--r-- 1 momo momo  3496 10月 24 10:06 func.o
-rw-r--r-- 1 momo momo  1511 10月 24 10:09 pack.c
-rw-r--r-- 1 momo momo  3776 10月 24 10:10 pack.o
-rw-r--r-- 1 momo momo   680 10月 30 16:42 clien.c
-rw-r--r-- 1 momo momo  2128 10月 30 16:42 clien.o
-rwxr-xr-x 1 momo momo 13824 10月 30 16:42 clien
-rw-r--r-- 1 momo momo   592 11月  2 15:18 clien_5.c
-rwxr-xr-x 1 momo momo 13912 11月  2 15:19 clien_5

-rw-rw-r-- 1 momo momo  7604 11月 16 17:40 libpackfunc.a


17:42 momo@momo /home/momo/myfile/mydev/cc/socket/clien
% cc -o clien_test clien.c -L. -lpackfunc (利用静态库与.o文件链接生成可执行文件,-L后面是静态库所在目录,-l后面是静态库名去掉lib开头以及.a后的名字)
17:43 momo@momo /home/momo/myfile/mydev/cc/socket/clien
% ls -trl
总用量 92
-rw-r--r-- 1 momo momo   238 10月 24 09:07 Makefile
-rw-r--r-- 1 momo momo  1478 10月 24 09:15 func.c
-rw-r--r-- 1 momo momo  1466 10月 24 09:41 unp.h
-rw-r--r-- 1 momo momo  3496 10月 24 10:06 func.o
-rw-r--r-- 1 momo momo  1511 10月 24 10:09 pack.c
-rw-r--r-- 1 momo momo  3776 10月 24 10:10 pack.o
-rw-r--r-- 1 momo momo   680 10月 30 16:42 clien.c
-rw-r--r-- 1 momo momo  2128 10月 30 16:42 clien.o
-rwxr-xr-x 1 momo momo 13824 10月 30 16:42 clien
-rw-r--r-- 1 momo momo   592 11月  2 15:18 clien_5.c
-rwxr-xr-x 1 momo momo 13912 11月  2 15:19 clien_5
-rw-rw-r-- 1 momo momo  7604 11月 16 17:40 libpackfunc.a
-rwxrwxr-x 1 momo momo 13744 11月 16 17:43 clien_test
17:43 momo@momo /home/momo/myfile/mydev/cc/socket/clien
% clien_test
connect error: Connection refused
^C

GCC 编译 C(C++)静态链接库(gcc -L、gcc -l)和动态链接库 gcc -fpic -shared 源文件名…ar rcs 静态链接库名称 目标文件1 目标文件2 … 阅读详情

相关推荐

[C++] 使用Visual Studio创建及使用静态链接库和动态链接库

两者区别 lib 是静态链接库,相当于多个.obj 链接而成的一个library。使用时,需要对应的 .h 头文件, 和 lib。 生成的 .exe 会占用较大空间。优点是,使用步骤少,简单方便。缺点除了exe较大外,.h 会一定程度泄露code,且每次修改.lib, exe 需重新编译,缺少灵活性。 dll 相当于没有 main 的 exe,可以多个进程共享一个dll,节省内存空间。...

学习笔记 7570

qt静态链接库心得

今天在工作上要调用别人的函数,故而用到了静态链接,网上方法挺多的就不赘述了,只是来说说自己的大概情况。 pro文件里面添加LIBS +=My_path/libwaveformGEN.a //路径要一致,否则会报错找不到该文件 然后我就报了三行错  relocation R_X86_64_PC32 against symbol `ceil@@GLIBC_2.2.

u014430031的博客 1950

用VS2019创建静态/动态链接库

VS2019创建静态/动态链接库

只为改变自己 3863

动态链接库学习笔记

<br />#声明一个导出的以c为连接方式的函数<br />DLl中导出函数的声明有两种方式<br />(一)使用__declspec(dllexport);<br />extern "c" int __declspec(dllexport)add(int x,int y)<br />__declspec(dllexport)的含义是声明函数add为DLL的导出函数。<br />dll内的函数分为两种<br />(1)DLL导出函数,可供应用程序调用;<br />(2)DLL内部函数,只能在DLL程序内使用

神秘代码 699

Windows静态链接库与动态链接库的创建和显式与隐式调用

一、链接库简介 之前已经写过一篇Linux环境下的静态与动态链接库对比和应用的文章:C++静态库与动态库—Linux基础篇。这里不再赘述,主要介绍Windows环境下与Linux的区别。 二、Windows静态库的创建和使用 2.1 Windows静态库的创建 如果是使用VS命令行生成静态库,也是分两个步骤来生成程序: 首先,通过使用带编译器选项 /c 的 Cl.exe 编译代码 (cl /c ...

流云 3603

Unity PBR实战:从零打造丝绸材质各向异性高光效果

本文详细介绍了在Unity中实现丝绸材质各向异性高光效果的PBR实战技巧。通过改造Standard Shader、适配IBL环境光以及高级效果调优,开发者可以创建出逼真的丝绸材质,展现动态光纹变化。文章包含关键代码示例和参数配置建议,特别适合需要提升材质表现力的Unity开发者。

weixin_29015483的博客 460

linux下的动态库

大家都知道,在WINDOWS系统中有很多的动态链接库(以.DLL为后缀的文件,DLL即Dynamic Link Library)。这种动态链接库,和静态函数库不同,它里面的函数并不是执行程序本身的一部分,而是根据执行程序需要按需装入,同时其执行代码可在多个执行程序间共享,节省了空间,提高了效率,具备很高的灵活性,得到越来越多程序员和用户的青睐。那么,在LINUX系统中有无这样的函数库呢? 答案是肯

soarwell's blog 1384

win11本地部署 DeepSeek-R1 大模型!免费开源,媲美OpenAI-o1能力,断网也能用

是否安装成功,然后直接运行部署deepseek-r1的命令。,出现下面界面即为安装成功。在cmd窗口中先输入。

记录学习编程的日常 2992

C和C++中动态链接库的创建和链接(原创,装载请注明原处)

C和C++中动态链接库的创建和链接 1.创建DLL(动态链接库)-C++方式 1.创建DLL(动态链接库-C++方式) 1.在VS(以VS2017为例)中创建DLL动态链接库。 解决方案名称为:MyDLL 项目名称为:Dll1 2.创建头文件Dll1.h 输入如下代码: #pragma once #ifdef MY_DLL_EXP #else #define MY_DLL_EXP _declsp...

weixin_30306905的博客 235

不用写代码!用AIStarter 5.0.0离线包部署InfiniteTalk的完整指南(Windows/Mac/Linux全平台)

本文详细介绍了如何使用AIStarter 5.0.0离线包在Windows、Mac和Linux平台上零代码部署InfiniteTalk数字人。从环境准备、离线资源获取与验证,到全平台部署实操指南,提供了完整的本地化安装流程和优化建议,帮助用户快速实现AI项目的一键部署。

weixin_30275415的博客 273

数据库系统概论课后习题答案(第五版 王珊、萨师煊)

第1章 绪论 1 .试述数据、数据库、数据库系统、数据库管理系统的概念。 答: ( l )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机系统中数据的概念是广义的。早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。现代计算机能存储和处理的对象十分广泛,表

早知晓的博客 11万+

Linux静态/动态链接库的创建和使用(转载学习)

Linux静态/动态链接库的创建和使用(转载学习) 转载地址:http://space.itpub.net/47598/viewspace-26142 和Windows系统一样Linux也有静态/动态链接库,下面介绍创建和使用方法: 假设有下面几个文件: 头文件String.h,声明相关函数原形,内容如下: Strlen.c:函数Strlen的实现,获取给定字符串的长度,内容如下: S

blacet的学习点滴 505

CTFmisc-------Jack

每一个文件里面都有不一样的base64编码,我尝试将其解密,发现解出来的是乱码,所以我想到真正的flag藏在这些字符串中,所以我们要写代码把字符串提取出来。提取出来后,得到很多的base64的编码,要一个一个的解码很麻烦,猜到里面有flag字样的base64编码,所以我们将flag进行base64编码,1.下载得到Jack文件夹,里面有很多的txt文件。发现这个字符串是众多编码中唯一一个没有==然后从那些base编码中寻找Zmxh字段。

woshicainiao666的博客 1万+

GCC 编译 C(C++)静态链接库(gcc -L、gcc -l)和动态链接库(1)

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。 如果你需要这些资料,可以戳这里获取需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!静态链接库其实就相当于压缩包,其内部可以包含多个源文件。但需要注意的是,并非任何一个源文件都可以被加

2401_85012446的博客 397

PyCharm安装PyQt5及工具详细教程

PyCharm是一款功能强大的Python集成开发环境(IDE),而PyQt5是一个用于创建GUI应用程序的流行Python库。在本教程中,我将指导您如何在PyCharm中安装PyQt5及其相关工具,并提供相应的源代码示例。安装完成后,启动PyCharm并创建一个新的项目。为了隔离项目的依赖项,我们建议在PyCharm中使用虚拟环境。在创建项目的过程中,您可以选择创建新的虚拟环境或使用现有的环境。根据您的操作系统,选择适当的版本并按照安装向导的指示进行安装。首先,您需要下载并安装PyCharm。

CfProgram的博客 589

2024年软考信息安全工程师备考历年真题汇总

信息安全工程师分属“信息系统”专业,位处中级资格,2016年下半年,第一次开考信息安全工程师(中级)考试。目前每年考试一次。已开考六次,2016年11月12日,2017年5月20日,2018年5月26日,2019年5月25日,2020年11月7日,2021年11月6日为第六次考试。 第五次和第六次考试,采用第二版教材。 2024年软考信息安全工程师备考历年真题汇总

月梦工作室 5104

动态链接库(DLL)总结

以前的学习笔记,记录库的一点学习心得。主要是Windows下的静态库和动态链接库,动态链接库只写了关于非MFC的DLL,比较初级,适合和我一样的新手看看。有不对的地方请指出,有疏漏的地方请补充,如果您比较闲的话,呵呵,感激不尽。 一:静态链接库   静态库(static library)将函数和数据编译进一个二进制文件,通常可以命名为*.lib,编译器在链接过程中,将这些二进制数据复制出来,并

Change 763

大语言模型原理与工程实践:手把手教你训练 7B 大语言模型 自动化训练框架

近年来,大语言模型(Large Language Models,LLMs)在自然语言处理领域取得了突破性进展。从GPT-3到ChatGPT,再到最新的GPT-4,这些模型展现出了惊人的语言理解和生成能力,引发了学术界和产业界的广泛关注。然而,训练如此庞大的模型不仅需要海量的数据和计算资源,还需要复杂的工程实践和优化技巧。本文将深入探讨大语言模型的原理,并以7B参数规模的模型为例,详细介绍如何构建一个自动化训练框架,使读者能够亲自动手训练自己的大语言模型。

AI天才研究院 1923

VC++动态链接库((DLL)编程深入浅出(一)

1.概论  先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。   静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使 用DLL,该D

小虎的空间 599

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

c++学习笔记十六(动态链接库与静态链接库--类篇)

文件内容: test.h: #pragma once class Test{ public: Test(); ~Test(); void Func(int i); }; test.cpp: #include <iostream> #include "test.h" using namespace std; Test::Test(){ cout &lt...

qq_41827817的博客 267

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

好文推荐:VC++动态链接库(DLL)编程深入浅出

<br />1.概论<br /><br />  先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。<br />  静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该DLL不必被包含在最终EXE文件中,EXE文件执行时可以“动态”地引用和卸

厦门 程序人生 353

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

静态链接库与动态链接库详解

以下内容源于C语言中文网相关内容的学习整理,如有侵权请告知删除。

主要记录嵌入式学习与开发过程。 9307

C++ 动态链接库和静态链接库

概论   先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。   静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该DLL

攻城狮 6710
上一篇: realloc函数的简单应用-c语言程序
下一篇: 希尔排序-c语言实现
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值