linux加载动态库错误 请高手帮下忙,帮忙分析下原因错误是java.lang.UnsatisfiedLinkError: 动态库 : 动态库:only ET_DYN and ET_EXEC can be loaded献上高分等待高手的回答 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://bbs.chinaunix.net/viewthread.php?tid=805072http://chen2337.blog.163.com/blog/static/3403992020076275576227/,原因是因为没有设置LD_LIBRARY_PATH,在shell环境中执行export LD_LIBRARY_PATH=/home/JNI,上述问题就迎刃而解。core java 2一书中的编译环境是在solaris下,所以环境变量的设置不同。 这个帖子我也看过好长时间,也这样去尝试过最后发现一个问题,就是用户的环境不可能每次都让我们手动的去设置一个环境变量所以我们使用的过程中就用System.load()直接去加载所在的动态库,加载的动态库是通过copy工程的动态库到本地,所以就没有必要去设置那个环境变量,而且这样在windows地下,还有redhit64位地下都通过了由于要测试的环境比较多,编译的so就比较多了点,最后发现编译的so在redhit32位跟suse 64 ,suse 32上运行都报上面的错误,太郁闷了所以请高手帮忙解释下这个错误是什么意思 唉。没玩过Linux。。有空一定装个玩玩去。 不用每次手动设置,可以在.profile或者.bash_profile中设置export LD_LIBRARY_PATH=/home/JNI最好是在不同的服务器上全部本地编译,而不是一次编译到处copy. export LD_LIBRARY_PATH=/java_home/lib 或者你在运行的时候把相应的dll加入classpath中去看看 通过变量不行的话,那么修改下系统文件配置下,看看行不行/etc/ld.so.conf 问题解决了,是一个很低级的错误导致花了两天时间去解决他解决方法是将打包过程中g++ -fpic -I/usr/java/jdk1.6.0_19/include/ -I/usr/java/jdk1.6.0_19/include/linux/ -shared -o libkeyboard_encrypt_64.so -c keyboard_encrypt.c 修改成为了g++ -fpic -I/usr/java/jdk1.6.0_19/include/ -I/usr/java/jdk1.6.0_19/include/linux/ -shared -o libkeyboard_encrypt_64.so keyboard_encrypt.c 唉,真是头痛,还得我重装了四个系统,现在打包四个系统中均能够使用希望大家以后不要犯这种低级错误给分大家 简体中文算几个字节啊? 怎么打开Java Design界面啊??? 请教一个算法! java爱好者的问题? String 类型的变量如何 转换成 java.util.Calendar 类型 关于多线程控制 正则表达式不能描述哪些东西? java网络编程的一个练习题,为何程序不能运行出界面? 急急急:各位务必要帮这个忙,分数不是问题!!! 一个多线程、支持断点续传的java源码 JPasswordField.getPassword().toString()和new String(JPasswordField.getPassword()) 设置前景色或背景色为什么会无效..
最后发现一个问题,就是用户的环境不可能每次都让我们手动的去设置一个环境变量
所以我们使用的过程中就用System.load()直接去加载所在的动态库,加载的动态库是通过copy工程的动态库到本地,所以就没有必要去设置那个环境变量,而且这样在windows地下,还有redhit64位地下都通过了
由于要测试的环境比较多,编译的so就比较多了点,最后发现编译的so在redhit32位跟suse 64 ,suse 32上运行都报上面的错误,太郁闷了所以请高手帮忙解释下这个错误是什么意思
不用每次手动设置,可以在.profile或者.bash_profile中设置export LD_LIBRARY_PATH=/home/JNI
最好是在不同的服务器上全部本地编译,而不是一次编译到处copy.
/etc/ld.so.conf
是一个很低级的错误导致花了两天时间去解决他解决方法是将打包过程中g++ -fpic -I/usr/java/jdk1.6.0_19/include/ -I/usr/java/jdk1.6.0_19/include/linux/ -shared -o libkeyboard_encrypt_64.so -c keyboard_encrypt.c 修改成为了g++ -fpic -I/usr/java/jdk1.6.0_19/include/ -I/usr/java/jdk1.6.0_19/include/linux/ -shared -o libkeyboard_encrypt_64.so keyboard_encrypt.c 唉,真是头痛,还得我重装了四个系统,现在打包四个系统中均能够使用希望大家以后不要犯这种低级错误给分大家