扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在运行可执行程序时,假定 可执行程序 proc
创新互联建站秉承实现全网价值营销的理念,以专业定制企业官网,成都网站建设、成都网站设计,小程序制作,网页设计制作,移动网站建设,网络营销推广帮助传统企业实现“互联网+”转型升级专业定制企业官网,公司注重人才、技术和管理,汇聚了一批优秀的互联网技术人才,对客户都以感恩的心态奉献自己的专业和所长。proc 依赖动态连接库 libtest.so
libtest.so里面有 函数 func,
编译没错,执行出错
symbol lookup error:: undefined symbol: **func**
其可能原因是:连接的libtest.so不是最新的libtest.so,里面没有 func.
而造成没有 找到 最新libtest.so的原因 可能是 在libtest.so的搜索路径上有个旧的库
ps:
库在 搜索时,-ltest 会先在某A目录找.so,如果有.so,查找停止,如果没.so,在目录A找.a,如果找到则停止,都没有则 按照搜索路径 找后续目录B等.
-L./A -ltest_2 -L./B -ltest -ltest.so
这里假定 test_2.a/.so 是第三方提供的库,依赖了test.so,且第三方提供了一个其依赖的test.so 版本。 则A目录(libtest_2.so,libtest.so)
B目录为自己编译的版本的 libtest_3.so库,其依赖 libtest.so 其自己提供了一个libtest.so
即B目录为(libtest_3.so,libtest.so)
在查找路径上 先找 A 目录,再找B目录,如果 A的test.so和B的test.so不兼容(B的比A的新),可能会出现
B中的test库中符号没找到的错误,
这是因为 实际找到的 是 A中的 test库
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流