gpt4 book ai didi

创建共享库找不到​​apr-1

转载 作者:太空宇宙 更新时间:2023-11-04 03:58:23 30 4
gpt4 key购买 nike

gcc 4.7.2

你好,

我正在尝试创建一个使用 apr(apache 可移植运行时)库的共享库。

但是,当我执行以下操作时,我得到了:

ldd libjq.so
linux-gate.so.1 => (0xf777b000)
libdl.so.2 => /lib/libdl.so.2 (0xf774b000)
libapr-1.so.0 => not found
libc.so.6 => /lib/libc.so.6 (0xf7599000)
/lib/ld-linux.so.2 (0x4be59000)

找不到它:

libapr-1.so.0 => not found

我已经从源代码编译了 apr,所以它们不在系统路径上。我已将 include 和 libs 放在一个工具文件夹中以用于此项目。

我的目录结构是这样的:

projects/apr_queue/src/job_queue.c
projects/apr_queue/tools/lib/apr*
projects/apr_queue/tools/inc/apr*

我编译并创建目标文件:

cc -c -m32 -Wall -Wextra -g -I../tools/apr/inc job_queue.c -D_LARGEFILE64_SOURCE -o job_queue.o

然后像这样创建共享库:

cc -m32 -shared -o libjq.so -L../tools/apr/lib -lapr-1 job_queue.o

没有链接或编译错误。只是没有找到 apr-l 库。

我是不是漏掉了一步。

非常感谢您的任何建议,

最佳答案

您可以使用 rpath 将目录传递给链接器,这会将目录添加到运行时库搜索路径

-Wl,-rpath,/path/tools/apr/lib

或者使用LD_LIBRARY_PATH环境变量:

$ LD_LIBRARY_PATH=/path/tools/apr/lib ldd myprog

关于创建共享库找不到​​apr-1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14254570/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com