linux
离水的鱼儿
御剑江湖老,亦逞赤子心。
展开
-
Linux依赖库查找顺序
1.目录说明:/lib根目录下的所程序的共享库目录。此目录下包含系统引导和在根用户执行命令时候所必需用到的共享库。做个不太好但是比较形象的比喻,点类似于Windows上面的system32目录。理说,这里存放的文件应该是/bin目录下程序所需要的库文件的存放地,也不排除一些例外的情况。类似的目录还/usr/lib,/usr/local/lib等等。/usr/lib目标库文件,包括动态连接库加上一些通常不是直接调用的可执行文件的存放位置。这个目录功能类似/lib目录,理说,这里存放的文件应该是/b原创 2021-03-31 18:04:16 · 1295 阅读 · 1 评论 -
libxm2使用未定义的引用gzdopen lzma_code lzma_properties_decode lzma_end
./lib/libxml2.a(xzlib.o):在函数‘xz_decomp’中:/home/shenxuebing/桌面/xml/libxml2-2.9.9/xzlib.c:581:对‘lzma_code’未定义的引用./lib/libxml2.a(xzlib.o):在函数‘is_format_lzma’中:/home/shenxuebing/桌面/xml/libxml2-2.9.9/xzlib.c:312:对‘lzma_properties_decode’未定义的引用./lib/libxml2.原创 2020-06-20 10:25:28 · 1655 阅读 · 2 评论 -
Linux删除乱码文件夹
反正就是各种原因吧,导致Linux机器上有一些文件或者文件夹乱码,怎么都删不掉。方法:通过ls -i 指令获得文件的i节点号find ./ -inum 1449274 -print -exec rm {} -rf \;已经删掉了。...原创 2020-04-17 14:17:00 · 1124 阅读 · 0 评论 -
Linux生成静态库和动态库和导出指定函数及使用方法
一、Linux生成动态库两步生成动态库1.gcc -fPIC -c test.c 2.gcc -shared -o libtest.so test.o 一步生成动态库gcc -shared -fPCI -o libtest.so test.c二、Linux生成静态库1. 生成目标文件 gcc -c test.c2.生成静态库 ar -r libtest.a...原创 2020-03-15 21:32:28 · 4936 阅读 · 0 评论 -
Linux如何链接不是以"lib"开头名字的库
问题:在Linux下编译程序的时候免不了调用别人或者第三方开源的库,我们知道Linux在编译的时候链接动态库可以有两种方案:-l如-ldl,链接的就是libdl.so-L如-L /usr/lib64/libdl.so如果你用到的库不是以"lib"开头名字的库怎么办?如大数库miracl.a、testAPI.so这你怎么链接呢?解决方案:修改库的名字如把miracl....原创 2020-03-15 20:37:01 · 3869 阅读 · 1 评论 -
GCC 参数详解
gcc 与 g++ 分别是 gnu 的 c & c++ 编译器 gcc/g++ 在执行编译工作的时候,总共需要4步:1、预处理,生成 .i 的文件[预处理器cpp] 2、将预处理后的文件转换成汇编语言, 生成文件 .s [编译器egcs] 3、有汇编变为目标代码(机器代码)生成 .o 的文件[汇编器as] 4、连接目标代码, 生成可执行程序 [链接器ld] 参数详解-x la...原创 2020-03-15 20:08:04 · 1609 阅读 · 0 评论 -
Linux下交叉编译openssl
版本:openssl-1.1.01、openssl1.1.1b./config no-asm np-shared --prefix=/usr/local/armopenssl --cross-compile-prefix=arm-xilinx-linux-gnueabi-编辑Makefile,将Makefile文件中的-m32或者-m64去掉makemake install根据需要添加...原创 2020-03-13 14:24:43 · 539 阅读 · 0 评论 -
Linux下交叉编译libiconv库
版本:libiconv-1.15./configure --prefix=/usr/local/armlibiconv --host=arm-xilinx-linux-gnueabimakemake install其他选项根据需要自行正常写就可以了,亲测成功。原创 2020-03-13 14:14:09 · 1216 阅读 · 0 评论 -
Linux GDB调试程序常用命令
1. gdb -tui test打开调试程序,界面分页,上面是代码,下面是命令; 2. gdbtui的开关快捷键:ctrl+x ctrl+a或者ctrl+x A 3. file test在运行gdb下打开某个文件 4. run/r 运行 5. continue/c 继续运行 6. step/s 如果有函数则进...原创 2020-03-06 16:50:34 · 380 阅读 · 0 评论 -
Linux共享内存、信号量、队列信息管理
unix/linux下的共享内存、信号量、队列信息管理在unix/linux下,经常有因为共享内存、信号量,队列等共享信息没有干净地清楚而引起一些问题。查看共享信息的内存的命令是ipcs [-m|-s|-q]。默认会列出共享内存、信号量,队列信息,-m列出共享内存,-s列出共享信号量,-q列出共享队列清除命令是ipcrm [-m|-s|-q] id。-m 删除共享内存,-s删除共享信号量...转载 2020-02-14 15:50:53 · 176 阅读 · 0 评论 -
openssl静态库使用出错undefined reference to `COMP_CTX_new‘
有个项目又要用到openssl,在Linux下编译的时候没注意,报了以下错误libcrypto.a(threads_pthread.o): In function `fork_once_func':threads_pthread.c:(.text+0x76): undefined reference to `pthread_atfork'libssl.a(ssl3_record.o): In...原创 2019-10-13 16:34:39 · 16538 阅读 · 5 评论 -
解决undefined reference to `pthread_atfork'
有个项目要在CentOS6上边编译,之前的代码再CentOS7上编译都没有问题,反而在centOS6上用openssl时出了问题在用openssl的时候一直都是加,在编译的命令上已经加了-lpthread还是不管用,于是上网查了一下解决方案:加上-pthreadpthread_atfork是POSIX标准,在编译时要加上-pthread-lpthread是老版本的gcc编译器用的,在新版本...原创 2019-10-13 16:26:35 · 10142 阅读 · 1 评论 -
CentOS64位安装32位编译环境
在64位的系统上如果编译32的程序如 gcc -m32 test.c 会报如下的错误centos64位编译32位代码,出现/usr/include/gnu/stubs.h:7:27: 致命错误:gnu/stubs-32.h:没有那个文件或目录,需要安装32位的glibc库文件。安装32位glibc库文件命令:(安装C库文件) sudo yum install glibc-devel.i...原创 2019-09-11 11:14:24 · 3898 阅读 · 1 评论 -
读取配置文件(跨平台Linux和Windows)
大部分的项目都会用到配置文件,之前也有一个一直在用的读取配置文件的代码,感觉不是太好,想找一个一直能用的代码。于是找轮子造了一个自行车。直接撸代码。readConfigFile.h#ifdef WIN32#include <Windows.h>#include <stdio.h&amp原创 2019-01-08 15:05:08 · 1028 阅读 · 0 评论 -
Linux 常用操作命令
常用指令ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all)mkdir 创建目录 -p 创建目录,若无父目录,则创建p(parent)cd 切换目录touch 创建空文件echo原创 2017-05-21 09:45:48 · 365 阅读 · 0 评论