开发者社区 > 云原生 > Serverless > 正文

请问函数计算是不能用代码按绝对路径加载so动态库吗? 代码根目录放了so库,用绝对路径

请问函数计算是不能用代码按绝对路径加载so动态库吗?

提问17.png

代码根目录放了so库,用绝对路径加载,调用报错Process exited unexpectedly before completing request

提问18.png

展开
收起
白夜行fighting 2023-10-11 10:16:16 48 0
3 条回答
写回答
取消 提交回答
  • 在函数计算中,通常不能使用代码按绝对路径加载动态链接库(so库)。函数计算是一种无服务器计算服务,它通过在云上动态运行函数来提供计算能力。为了确保隔离性、可扩展性和安全性,函数计算的执行环境是临时创建的容器,不允许直接访问主机文件系统。

    因此,您无法在函数计算中通过代码直接指定绝对路径来加载动态链接库。相反,您需要将所需的依赖库打包到函数计算的部署包中,并在函数代码中使用相对路径或其他约定的方式来引用这些库。

    2023-10-12 22:46:48
    赞同 展开评论 打赏
  • LD_LIBRARY_PATH linux 应该都是按照这个变量来的

    LD_LIBRARY_PATH 您看下这个现在是什么 看看有没有 /code 目录

    此答案来自钉钉群“阿里函数计算官网客户”

    2023-10-11 20:39:59
    赞同 展开评论 打赏
  • 在阿里云函数计算环境中,由于函数运行环境的文件系统是隔离的,无法直接访问宿主机的文件系统,因此不能使用绝对路径来加载SO动态库。你需要将SO动态库放置在函数计算提供的存储空间中,然后通过相对路径来加载和使用。

    在你的错误日志中,"Process exited unexpectedly before completing request" 可能是由于加载SO动态库失败导致的。这可能是因为加载路径不正确,或者SO动态库不在指定的加载路径下。

    你可以尝试以下步骤来解决这个问题:

    1. 将SO动态库上传到函数计算提供的存储空间中。

    2. 在代码中,使用相对路径来加载SO动态库。例如,如果你的代码和SO动态库都位于同一个目录下,你可以使用 "./" 作为加载路径。

    3. 检查你的代码,确保你能够正确地加载和使用SO动态库。

    2023-10-11 13:44:48
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    All in Serverless 阿里云核心产品全面升级 立即下载
    AIGC 浪潮之上,森马的 Serverless 实践之旅 立即下载
    极氪大数据 Serverless 应用实践 立即下载