linux 下helloworld .so makefile文件编写菜鸟记录
来源:互联网 发布:通过mac地址查找设备 编辑:程序博客网 时间:2024/06/09 23:03
代码部分的说明请参考上一篇 http://blog.csdn.net/zdy10326621/article/details/38470285
这一部分组要的是.so的生成和链接使用
#makefile文件
obj = program.c
libobj=lib.h bill.c fred.c
libpath=/home/zengdengyi/桌面/liunx/linux/chapter01/libtest.so
#all 表示执行这两个命令
all:libtest program
libtest:$(libobj)
@gcc $(libobj) -fPIC -shared -o libtest.so
program: $(obj)
@gcc $(obj) -L. $(libpath) -o program
gcc $(libobj) -fPIC -shared -o libtest.so 这个命令表示将lib.h bill.c fred.c 这三个文件编译成.so库
gcc $(obj) -L. $(libpath) -o program 将program.c和.so库文件编译成可执行文件program
网上看到的多数使用
gcc $(obj) -L. -ltest -o program 这可以编译生成test可移文件program
但是在ldd program 产看链接是否承购的时候都是会报错找不到.so库
问度娘看了一堆高手的文章知道是个什么原因,但是在linux下配置环境变量,这对菜鸟来说还是很吃力的,所以可以直接的把路径写死
libpath=/home/xxx/桌面/liunx/linux/chapter01/libtest.so
这就是我项目所在文件的路径,.so就在这里
当然在高手眼里这很菜,但是对于菜鸟来说能最简单的看到效果就是学习的动力,就想搞懂一个问题,结果绕出N多个问题得不偿失,
有动力了才有耐心一个个问题解决
makefile文件只要换成你电脑项目所在的路径就可以直接make
生成可执行程序program
ldd program 也不会报找不到动态库的路径的问题证明链接动态库成功
当然想看运行结果还是需要使用gdb program
run
运行结果
quit
退出gdb
linux 下编译最简单的.so就这样了
- linux 下helloworld .so makefile文件编写菜鸟记录
- linux helloworld 通过makefile文件 编译菜鸟学习记录
- Linux下编写makefile文件
- Linux下Makefile文件编写
- linux下编写调用so文件学习
- Linux下的.so文件编写
- linux下编写调用so文件学习
- linux 下 多文件 Makefile 编写
- Linux/Unix下makefile文件编写实例
- Linux/Unix下makefile文件编写实例
- linux系统下编写一个makefile文件
- Linux环境下MakeFile文件编写
- linux下如何编写makefile文件
- Linux系统下Makefile文件编写
- Linux下简单Makefile文件的编写
- Linux下的Makefile文件编写
- openwrt packet文件夹下Makefile文件编写的一些记录
- linux makefile文件编写
- leetcode 刷题之路 71 Best Time to Buy and Sell Stock
- 乐观锁与悲观锁
- 4条社区管理的实战经验
- 第一章笔记
- linux之cp/scp命令+scp命令详解
- linux 下helloworld .so makefile文件编写菜鸟记录
- UVA - 10719 Quotient Polynomial
- 有关Transaction not successfully started问题解决办法
- Android游戏学习第二天(2)
- HBase 查找版本号
- UVA 10969 Sweet Dream(圆的相交)
- android 读取,写入图片到sd卡源码
- 理解'Stage'在Git源码控制中的意思
- 16进制的简单运算