花了一下午时间来看动态库和静态的使用,还好都看懂了,而且都实验成功了
linux 下静态库以.a结尾 动态库以.so结尾
下面是我的目录结构
main.c
stack3
stack.h
stack.c
pop.c
push.c
is_empty.c
1.静态库
cd stack3
gcc -c pop.c push.c stack.c is_empty.c
ar rs libstack.a *.o
cd ..
gcc main.c -L stack3 -lstack -Istack -o main
./main
2.动态库
cd stack3
gcc stack.c pop.c push.c is_empty.c -fPIC -shared -o libstack.so
(有些资料上写的 -c -o一起用,经测试不能一起用的)
cd ..
gcc main.o -L stack3 -lstack -Istack3 -o main
./main
(错误提示找不到libstack.so)
ldd main
(查看链接路径的时候也找不到)
cat /etc/ld.so.conf
(显示 include ld.so.conf.d/*.conf)
vim /etc/ld.so.conf.d/mytest.conf
(添加一行 /....../stack3/)
ldconfig
./main
(成功)
3.小知识
拷贝一个文件夹
cp -rf stack2 stack3
(不用mkdir stack3哦)呵呵,我是菜鸟,以前不知道
ps 我学习的资料大部分是linux c 一站式学习.pdf
相关推荐
MyTest程序 调用 Dll1动态库,Dll1 同时调用 MyDll2动态库和Mylib1静态库。 最后,MyTest.exe 只需放置Dll1动态库和MyDll2动态库 程序在VS2015上编译的,亲自测试通过。
makefile编写方法 1.编译执行文件 2.静态库.a文件 3.动态库.so文件
vs2015编译的librdkafka动态库和静态库 v1.6.1版本
linux静态库和动态库的区别
Linux系统下使用gcc 5.3编译器编译的boost库1.68版本的动态库和静态库,多线程参数编译,经测试可用
在github上下载支持linux的redis plus plus 进行CMake,生成的支持在windows、C++(支持集群、哨兵、连接池等) 项目下使用的动态库和静态库文件,其他详细使用教程及例程参见源码网址...
c++封装的动态库和静态库文件及调用
Xcode生成动态库和静态库的方法,亲测可用,最后有将模拟仿真结果与真机测试结果合成的代码,合并后,放入工程目录,测试使用完全没有问题
CentOS7环境下编译的libwebsockets动态库和静态库,经过测试编译的库可以使用
dlib的安卓版本动态 库和静态库。方便时间紧急需要使用或者暂时没编出来库的朋友
Linux和Unix下的动态库和静态库编写方法
libcurl 使用vs2010编译的动态库和静态库(包含的debug和release版和头文件)
openssl-1.0.2h编译的win32的动态库和静态库,可以正常使用
opencv , opencv2 编译动态库和静态库方式
linux C 动态库和静态库生成及使用笔记
OpenSSL,版本1.0.1e,使用VC6编译,包含动态库和静态库
在这里将以举例的形式详述...静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。
CentOS7环境下编译的openssl 3.0动态库和静态库,经过测试,库可以正常使用
leptonica动态库和静态库 (Leptonica1.74.0 动态库和静态库,VS2010编译) 含libgif 4.1.6,libjpeg 8d,libpng 1.6.20,libtiff 4.0.6,zlib 1.2.8,libwebp 0.4.3,libopenjp2 2.1.0 giflib416-static-mtdll-debug.lib...
【Windows环境】编译好的 OpenCV3.4.10 动态库 和 静态库 (Release)。 有了静态库,在项目中调用,就不需要opencv dll 跟着了。