当前位置: 技术问答>linux和unix
好多的问题
来源: 互联网 发布时间:2015-08-18
本文导语: 我做动态连接库编程过程中,遇到这样一个问题, 我在main()函数中调用了动态连接文件 比如说是名 libtest.so 但是为什么我用dlopen("/home/libtest.so",ATLD_LAZY);为什么这里总说,没有相应的目录,我明明把libtest.so放在了...
我做动态连接库编程过程中,遇到这样一个问题,
我在main()函数中调用了动态连接文件 比如说是名 libtest.so
但是为什么我用dlopen("/home/libtest.so",ATLD_LAZY);为什么这里总说,没有相应的目录,我明明把libtest.so放在了该目录下的啊。。。。。请不用追久dlopen()的第二个参数,是否正确
如果有朋友做过这方面的问题,可否让我看看你的执行的过程,或者提供一写示例程序看看,还是我执行过程中命令错了。
我在main()函数中调用了动态连接文件 比如说是名 libtest.so
但是为什么我用dlopen("/home/libtest.so",ATLD_LAZY);为什么这里总说,没有相应的目录,我明明把libtest.so放在了该目录下的啊。。。。。请不用追久dlopen()的第二个参数,是否正确
如果有朋友做过这方面的问题,可否让我看看你的执行的过程,或者提供一写示例程序看看,还是我执行过程中命令错了。
|
我是把libtest.so放到了/lib目录下才成功。
你可以试试。。。
你可以试试。。。
|
dlerror看看,把错误信息贴上来
我用过但没什么问题
#include
#include
int main(int argc, char **argv) {
void *handle;
double (*cosine)(double);
char *error;
handle = dlopen ("/lib/libm.so", RTLD_LAZY);
if (!handle) {
fputs (dlerror(), stderr);
exit(1);
}
cosine = dlsym(handle, "cos");
if ((error = dlerror()) != NULL) {
fprintf (stderr, "%sn", error);
exit(1);
}
printf ("%fn", (*cosine)(2.0));
dlclose(handle);
}
我用过但没什么问题
#include
#include
int main(int argc, char **argv) {
void *handle;
double (*cosine)(double);
char *error;
handle = dlopen ("/lib/libm.so", RTLD_LAZY);
if (!handle) {
fputs (dlerror(), stderr);
exit(1);
}
cosine = dlsym(handle, "cos");
if ((error = dlerror()) != NULL) {
fprintf (stderr, "%sn", error);
exit(1);
}
printf ("%fn", (*cosine)(2.0));
dlclose(handle);
}
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。