当前位置: 技术问答>linux和unix
急!!!怎样写共享库的MAKEFILE文件?
来源: 互联网 发布时间:2015-05-24
本文导语: 我有3个问题讨教: 1.怎样写共享库的MAKEFILE文件?怎样使用共享库? 2.LINUX能访问本机WIN2000的分区吗?如何访问? 3.RedHat9, 我通过POP3协议对我公司的WIN2000邮件服务器收发邮件,要怎样设置?我设置了,就是收不到邮...
我有3个问题讨教:
1.怎样写共享库的MAKEFILE文件?怎样使用共享库?
2.LINUX能访问本机WIN2000的分区吗?如何访问?
3.RedHat9, 我通过POP3协议对我公司的WIN2000邮件服务器收发邮件,要怎样设置?我设置了,就是收不到邮件,为什么?
1.怎样写共享库的MAKEFILE文件?怎样使用共享库?
2.LINUX能访问本机WIN2000的分区吗?如何访问?
3.RedHat9, 我通过POP3协议对我公司的WIN2000邮件服务器收发邮件,要怎样设置?我设置了,就是收不到邮件,为什么?
|
给你一份我过去的学习笔记
在linux下编写动态链接库的步骤:
1.编写库的头文件和源文件.
2.把所有涉及到的源文件用如下方式编译为目标文件:
g++/gcc -g -c -fPIC -o library1.o library1.cpp
g++/gcc -g -c -fPIC -o library2.o library2.cpp
......
......
3.把所有的目标文件链接为动态库:
g++/gcc -g -shared -Wl,-soname,lib***.so,-o lib***.so.1.0.0, library1.o library2.o .... -lc
4.建立一个库名链接
ln -s lib***.so.1.0.0 lib***.so
现在你就可以引用库了.下面我分别给出简单例子告诉你如何动态和静态使用动态库:
假如你的应用程序源代码叫testlib.cpp
采用如下方式编译:
g++ -g -o testlib testlib.cpp -ldl
////////这个例子告诉你如何动态的调用.so库
testlib.cpp
#include
#include
#include ...
int main()
{
void *handle=NULL;
//define a pointer which will point to the function in the lib you want to use.
YourFuntionType (*pFunc)(YourFunctionPerameterList........);
//open the lib you want to use.
handle=dlopen("/../../../yourlib.so",RTLD_LAZY);
if(handle==NULL)
{
cout
在linux下编写动态链接库的步骤:
1.编写库的头文件和源文件.
2.把所有涉及到的源文件用如下方式编译为目标文件:
g++/gcc -g -c -fPIC -o library1.o library1.cpp
g++/gcc -g -c -fPIC -o library2.o library2.cpp
......
......
3.把所有的目标文件链接为动态库:
g++/gcc -g -shared -Wl,-soname,lib***.so,-o lib***.so.1.0.0, library1.o library2.o .... -lc
4.建立一个库名链接
ln -s lib***.so.1.0.0 lib***.so
现在你就可以引用库了.下面我分别给出简单例子告诉你如何动态和静态使用动态库:
假如你的应用程序源代码叫testlib.cpp
采用如下方式编译:
g++ -g -o testlib testlib.cpp -ldl
////////这个例子告诉你如何动态的调用.so库
testlib.cpp
#include
#include
#include ...
int main()
{
void *handle=NULL;
//define a pointer which will point to the function in the lib you want to use.
YourFuntionType (*pFunc)(YourFunctionPerameterList........);
//open the lib you want to use.
handle=dlopen("/../../../yourlib.so",RTLD_LAZY);
if(handle==NULL)
{
cout