linux下生成.so并运行程序加载该.so
2016-10-26 14:33
393 查看
此时如果我们想要生成动态库,要做的工作其实非常简单,输入gcc
-shared -fPIC -o libtest.so test.c即可。回车后输入ls,我们就可以发现当前目录下面出现了libtest.so文件
在上面的代码当中,我们发现使用到了add函数,那么此时如何才能生成一个执行文件呢?也很简单,输入gcc
hello.c -o hello ./libtest.so。然后输入./hello,此时可以验证一下执行文件运行是否正确。在编写静态库的时候,我说过静态库是汇编链接到执行文件当中的,而动态库不会。朋友们可以做个小实验,删除libtest.so,然后输入./hello。此时大家可以看看系统有没有错误返回?
这个时候,有的朋友就会问了,那在windows下面dll应该怎么编写呢?其实也不难,只要在test.h上面稍作改变即可。其他的步骤和静态库的操作是基本类似
-shared -fPIC -o libtest.so test.c即可。回车后输入ls,我们就可以发现当前目录下面出现了libtest.so文件
在上面的代码当中,我们发现使用到了add函数,那么此时如何才能生成一个执行文件呢?也很简单,输入gcc
hello.c -o hello ./libtest.so。然后输入./hello,此时可以验证一下执行文件运行是否正确。在编写静态库的时候,我说过静态库是汇编链接到执行文件当中的,而动态库不会。朋友们可以做个小实验,删除libtest.so,然后输入./hello。此时大家可以看看系统有没有错误返回?
这个时候,有的朋友就会问了,那在windows下面dll应该怎么编写呢?其实也不难,只要在test.h上面稍作改变即可。其他的步骤和静态库的操作是基本类似
相关文章推荐
- 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集
- Linux环境中以daemon方式运行的程序生成core dump
- 混合模式程序集是针对“v1.1.4322”版的运行时生成的,在没有配置其他信息,无法在 4.0 运行时中加载该程序
- Linux 运行程序时找不到so文件
- Linux下程序的加载、运行和终止流程 .
- 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集
- C程序的生成、加载、运行
- gm8180:arm linux启动加载模块、运行程序 分类: arm-linux-Ubuntu 2013-07-22 16:30 416人阅读 评论(0) 收藏
- linux程序自启动无法加载so库问题
- Linux环境中以daemon方式运行的程序生成core dump
- error: 生成此程序集的运行时比当前加载的运行时新,无法加载此程序集
- Linux下静态库_库的基本概念;如何生成静态库动态库;nm查看库中包含那些函数、ar生成静态库,查看库中包含那些.o文件、ldd查看程序依赖的.so文件;gcc/g++与库相关的参数-L,-l,-f
- LINUX 64位下运行32位程序加载和读取大数据段共享内存
- 未能加载文件或程序集“xxx”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集
- linux运行程序时,出现加载动态库失败:Cannot restore segment prot after reloc: Permission denied
- gm8180:arm linux启动加载模块、运行程序
- 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集
- Linux环境中以daemon方式运行的程序生成core dump
- Linux 指定程序运行加载的动态库路径
- [转] Linux下程序的加载、运行和终止流程