`
zerxd
  • 浏览: 71455 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

linux共享库编译的一些命令

阅读更多
    在这个例子中,message.c是一个接口函数的具体实现,它要被编译成一个共享的库函数。main.c是一个调用了该共享库的一个函数(在这里没有提供message.c的一些接口,即假设接口已知)。

    由于共享库会被许多程序共享,所以需要以一种位置无关的编译方式编译它。gcc -fPIC -c message.c。PIC标志告诉gcc产生的代码不要包含对函数和变量具体内存位置的引用。
    gcc -shared -o libmessage.so message.o,使用shared标志libmessage.so是共享库。

    用gcc通知连接器使用共享函数库资源libmessage.so:
    gcc -o goodbye -lmessage -L. main.o。
    -lmessage标记告诉gcc在连接时用共享的函数库libmessage.so.  -L.说明gcc 函数库可能位于当前目录。注意这里的-lmessage是-l + message的组合。
   
    导出LD_LIBRARY_PATH环境变量,这里有很多地方要注意。可以cd到工作目录下运行命令export LD_LIBRARY_PATH=`pwd` 这里`不是单是引号。该环境变量可以包含额外的函数库搜索路径。运行时连接器将搜索这些额外的路径以发现没有在标准路径中找到的函数库。
分享到:
评论

相关推荐

    Linux命令大全(最新修改版)

    /lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件 /sbin 超级管理命令,这里存放的是系统管理员使用的管理程序 /tmp 公共的临时文件存储点 /root 系统管理员的主目录 /mnt 系统提供这个目录是...

    linux 安装程序

    Linux 内核编译是使用命令make meunconfig 但是会出现以下错误。 *** Unable to find the ncurses libraries or the *** required header files. *** 'make menuconfig' requires the ncurses libraries. *** ...

    cmd操作命令和linux命令大全收集

    CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本) 命令大全 1. gpedit.msc-----组策略 2. sndrec32-------录音机 3. Nslookup-------IP地址侦测器 ,是一个 监测网络中 DNS...

    Linux代码,以C++为基础.rar

    程序的执行顺序是:编译->链接->运行,通过g++命令的-c选项接文件名的形式将程序进行编译;接着通过g++ 接编译后的*.o文件进行链接,生成可执行程序;通过./程序名进行运行程序 ldd 可执行程序,可以看到该可执行...

    Linxux应用开发-串口下载命令rzsz交叉编译.pdf

    rz/sz工具是通过Zmodem协议传输文件的命令,常用于Linux与windows之前的数据传输。 什么是rz/sz (lsz/lrz) ? rz/sz 通过Zmodem协议传输数据的命令,...这篇介绍如何在交叉编译rz/sz命令,并在Linux开发板上完成测试。

    linux于windows下资源的共享

    Samba 即可以用于Windows和Linux之间的共享文件,也一样用于Linux和Linux之间的共享文件;不过对于Linux和Linux之间共享文件有更好的网络文件系统NFS,NFS也是需要架设服务器的; 大家知道在Windows 网络中的每台...

    Linux使用技巧集

    实现LINUX与WINDOWS95文件共享 如何在Linux上建立DNS服务器 用FIPS为LINUX分区 在RedHat5.0中配置News Server 定制Linux内核,发挥Linux潜能 (LILO配置文件) 手册 Linux中的字型(FONTS)设定 Linux中IP隧道的分析...

    Linux从零入门实战-2019年七月Z线.txt

    第一阶段 Linux快速入门掌握Linux的常用操作命令 第一讲 Linux介绍 知识点1: Linux发展简史与黑客文化 知识点2: 安装Linux系统, 以Ubuntu虚拟机为例 知识点3: 购买Linux云主机,以阿里云主机为例 知识点4: Linux...

    androidFFmpeg4.0.2:在linux编译出android可用的最新版本 FFmpeg4.0.2

    androidFFmpeg4.0.2在linux编译出android可用的最新版本 FFmpeg4.0.2本人是用的是vmmare的编译环境是ubuntu17.10首先下载好vmmare,然后下载ubuntu的iso镜像。创建好ubuntu虚拟机然后在虚拟机上安装vvmare-tools,...

    【Linux】静态库和动态库

    Linux下,库分为静态库和共享库。   库的生成 静态库:库名:Libxxx.a,lib是库的前缀,xxx是库名,.a为静态库的后缀。 第一步:将需要生成静态库的.c文件转换为编译后的.o文件 命令:gcc -S mian.o mian.c 第二步...

    LINUX操作系统(电子教案,参考答案)

    Linux的树型结构,Linux的文本编辑,Linux的安装和启动,用户管理,Shell编程技术,进程管理,C编译器,系统扩充,维护与监视,Linux的图形界面,网络的基本概念与设置,Linux在网络资源共享和电子邮件方面的应用,...

    嵌入式Linux应用程序开发标准教程(第2版全)

    Linux基础部分从Linux基础、基本操作命令讲起,为Linux初学者能快速入门提供了保证。接着系统地讲解了嵌入式Linux的环境搭建,以及嵌入式Linux的I/O与文件系统的开发、进程控制开发、进程间通信开发、网络应用开发、...

    linux网络编程-宋敬彬-part3

    2.4.3 GDB常用命令 52 2.4.4 其他的GDB 59 2.5 小结 60 第3章 文件系统简介 61 3.1 Linux下的文件系统 61 3.1.1 Linux下文件的内涵 61 3.1.2 文件系统的创建 62 3.1.3 挂接文件系统 64 3.1.4 索引...

    GMSSL:此国密库是于2021年1月28日从北京大学的guanzhiGmSSL项目的主分支中获取的源码,通过改进后上传到此,解决了编译报错和会发生崩溃的问题,后续我会在此子系统的基础上完善一些示例代码,增加一些详细的介绍,为国密的推广共享一点绵薄之力

    一,LINUX下编译使用-d代表编译调试版本,no-shared代表生成静态库./config no-shared -dmakemake install二,Windows下编译perl建议选择开源的Strawberry,不要选择商业版的ActivePerl,要不然会碰到其他的小问题...

    linux网络编程-宋敬彬-part2

    2.4.3 GDB常用命令 52 2.4.4 其他的GDB 59 2.5 小结 60 第3章 文件系统简介 61 3.1 Linux下的文件系统 61 3.1.1 Linux下文件的内涵 61 3.1.2 文件系统的创建 62 3.1.3 挂接文件系统 64 3.1.4 索引...

    测试讯飞的离线命令词系统在一些场景下的效果。 使用CMake工具进行编译,使用有Qt库,日志库glog.zip

    操作系统:LInux、IOS、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络...

    redhat linux教材20课程学习文档

    12.9 共享库 第十三章 启动过程和启动脚本 13.1 理解系统启动过程 13.2 GRUB与LILO 13.3 启动配置文件和命令 13.4 rc目录和相关脚本 13.4.1 理解 rc.d 目录 13.4.2 /etc/rc.d/rc.svsinit 脚本 13.4.3 理解 rc 脚本...

    边干边学Linux__第二版_doc格式

    1.3 shell的一些基本命令 第2章 文本编辑 2.1 vi文本编辑器 2.2 emacs文本编辑器 第3章 Linux文件系统操作 3.1 文件类型 3.2 文件系统目录结构 3.3 目录操作的基本命令 3.4 文件操作的基本命令 3.5 显示字符串echo ...

    嵌入式Linux C编程入门(第2版) PPT

    3.3 编译嵌入式linux内核 91 3.4 linux内核目录结构 95 3.5 制作文件系统 95 本章小结 97 动手练练 97 第4章 嵌入式linux c语言基础——数据、表达式 98 4.1 嵌入式linux c语言概述 98 4.2 基本...

Global site tag (gtag.js) - Google Analytics