gpt4 book ai didi

c - 关于在 Linux 中使用 .so 编译

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:58:28 28 4
gpt4 key购买 nike

我开发了一个共享库B.so,它依赖于A.so。当我用B.so写了一个test.exe程序,但是出现编译错误,说找不到某些符号(符号在A.so中)。我的构建线:

gcc test.c -o test.exe -fPIC -I./ -L./ -lB

我们有没有一种方法,如何成功构建test.exe,但不链接A.so。

最佳答案

how to build test.exe successfully,but not link A.so.

至少有两种方法:

  1. 导出正确的 LD_LIBRARY_PATH

    export LD_LIBRARY_PATH=/path/to/A
    gcc ... -lB
  2. 使用ld 选项-rpath(由提问者@iceKing 自己发现)

    gcc -Wl,-rpath=/path/to/A ...

在这两种情况下,ld 将自动搜索明确依赖于这些库列表的库。

关于c - 关于在 Linux 中使用 .so 编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23271204/

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