2.动态库的制作:
gcc -shared -fpic testfunc.c -o libcalc.so
//生成 libxxx.so (动态库)文件
-shared 指定生成动态库
-fpic 标准,fPIC 选项作用于编译阶段,在生成目标文件时就得使用该选项,以生成位置无关的代码。
3.动态库的使用(与静态库一样):
gcc test.c -lcalc -L . //libcalc.so 动态库库名砍头去尾
生成的可执行文件a.out不能直接运行,提示没有这个文件,此时需要指定动态库位置
引用动态库,怎么指定动态库的位置
https://www.cnblogs.com/progamming/p/13043652.html
带动态库的程序,可以指定该程序运行时候,在LD_LIBRARY_PATH 所指定的路径去找库文件即: export LD_LIBRARY_PATH="/home/CLC/ShuMeiPi"
PS:Linux pwd(英文全拼:print work directory) 命令用于显示工作目录。执行 pwd 指令可立刻得知您目前所在的工作目录的绝对路径名称。
export LD_LIBRARY_PATH="/home/CLC/ShuMeiPi" (临时的,换一个窗口就不行)
此时可执行文件a.out已经可以运行如果我们想在其他的窗口也可执行,可以写一个脚本start.sh (通过脚本把两个指令并在一起)
export LD_LIBRARY_PATH="/home/CLC/ShuMeiPi" ./a.out
给脚本文件加一个可执行的权限
chmod +x start.sh
此时 直接运行脚本即可 ./start.sh
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)