【问题标题】:Linking a shared library when creating another shared library创建另一个共享库时链接共享库
【发布时间】:2014-03-06 22:09:38
【问题描述】:

我正在尝试将文件夹 /home/usr/abc 中的共享库 libabc.so 链接到共享库 libxyz.so。在制作共享库后,我尝试运行一些示例。 我的 Makefile 内容如下:

gcc -L/home/usr/abc/include -Wl,-soname,libxyz.so,-rpath=/home/usr/abc/include -shared -o $@ -labc -lm

当我尝试使用 libxyz.so 库运行任何示例时,我得到 libabc.so 函数的未定义引用错误。

编辑:

我还收到以下警告:

/usr/bin/ld: warning: libabc.so.1, needed by /home/usr/xyz/src/libxyz.so,not found
(try using -rpath or -rpath-link) 

我是否正确使用了 rpath?

【问题讨论】:

    标签: c linux shared-libraries


    【解决方案1】:

    您似乎忘记了实际链接到您的图书馆。你需要 添加 -labc ,例如在-lm 标志之前。

    【讨论】:

    • @Crackej,你的libabc.so 图书馆在哪里?这个文件到底叫什么?
    • 我的 libabc 文件是 libjemalloc.so。它存储在 /home/usr/jemalloc/include 文件夹中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    • 2015-09-05
    • 2021-09-30
    • 2011-01-25
    相关资源
    最近更新 更多