动态库的编译方法
编译库文件myfunction.c:
[table=98%,rgb(241, 241, 241)][tr][td]debian:/home/program# gcc -shared -o libmyfunction.so myfunction.c
[/td][/tr][/table]
如果编译成功,会在/home/program/下生成动态库文件:libmyfunction.so。
这里有两点需要说明:
1.对Linux操作,一般都推荐在普通用户模式下,如果需要超级用户的权限,则可以通过su root,输入root用户密码切换。我是个人学习使用,同时又有很多的操作都要使用root用户,因此就直接在root用户下进行编译。
2.编译生成动态库的命令为:gcc (-fpic) -shared -o libmyfunction.so myfunction.c
-fpic 使输出的对象模块是按照可重定位地址方式生成的。
-shared指定把对应的源文件生成对应的动态链接库文件。
引用动态库时 为什么编译能通过,而运行不能通过;
原因:编译是你的指定的路径去编译,而运行时是通过环境
变量去找,所以这时候就要指定路径,把你的路径加到环境变
量中就OK了
例如 export LD_LIBRARY_PATH="/usr/local/mysql/lib/mysql/"
源文件见:
阅读(1481) | 评论(0) | 转发(0) |