当前位置: 技术问答>linux和unix
关于创建共享库的问题(很容易)
来源: 互联网 发布时间:2015-06-17
本文导语: 我有三个文件hello.h hello.cpp main.cpp分别如下: #include /*-----hello.h------*/ class Testmath { public: float pingjun(int aa,int bb,int cc); int a; int b; int c; }; /*-----hello.cpp------*/ #include "hello.h" float Testmath::pingjun(int aa,int bb,int c...
我有三个文件hello.h hello.cpp main.cpp分别如下:
#include
/*-----hello.h------*/
class Testmath
{
public:
float pingjun(int aa,int bb,int cc);
int a;
int b;
int c;
};
/*-----hello.cpp------*/
#include "hello.h"
float Testmath::pingjun(int aa,int bb,int cc)
{
a=aa;
b=bb;
c=cc;
float avg;
avg=(float)(a+b+c)/3;
return avg;
}
/*-----main.cpp------*/
#include "hello.h"
main()
{
float num;
Testmath testmath;
num=testmath.pingjun(23,34,56);
printf("%fn",num);
}
我分别执行如下:
g++ -fPIC -c hello.cpp
g++ -shared -Wl,-soname,libhello.so.1 -o libhello.so.1.0 hello.o
ln -s libhello.so.1.0 libhello.so.1
ln -s libhello.so.1 libhello.so
以上结成功,产生三个文件libhello.so.1.0 libhello.so.1 libhello.so
然后:
cp libhello* /usr/lib
rm hello*
rm libhello*
再执行以下就有问题了:
g++ -shared -c main.cpp -l hello提示找不到hello.h文件,我现在不知错在那》请各位帮帮忙?
#include
/*-----hello.h------*/
class Testmath
{
public:
float pingjun(int aa,int bb,int cc);
int a;
int b;
int c;
};
/*-----hello.cpp------*/
#include "hello.h"
float Testmath::pingjun(int aa,int bb,int cc)
{
a=aa;
b=bb;
c=cc;
float avg;
avg=(float)(a+b+c)/3;
return avg;
}
/*-----main.cpp------*/
#include "hello.h"
main()
{
float num;
Testmath testmath;
num=testmath.pingjun(23,34,56);
printf("%fn",num);
}
我分别执行如下:
g++ -fPIC -c hello.cpp
g++ -shared -Wl,-soname,libhello.so.1 -o libhello.so.1.0 hello.o
ln -s libhello.so.1.0 libhello.so.1
ln -s libhello.so.1 libhello.so
以上结成功,产生三个文件libhello.so.1.0 libhello.so.1 libhello.so
然后:
cp libhello* /usr/lib
rm hello*
rm libhello*
再执行以下就有问题了:
g++ -shared -c main.cpp -l hello提示找不到hello.h文件,我现在不知错在那》请各位帮帮忙?
|
在cp libhello* /usr/lib之后,运行#ldconfig命令.
|
把你的头文件 cp 到 /usr/include
|
-lhello
中间不要空格
中间不要空格
|
你指定一下-I,把头文件的路径给出吧。