【发布时间】:2012-06-22 02:26:42
【问题描述】:
我正在尝试编译一个链接到Sundown 生成的共享库的示例程序。我正在这样编译程序。
$ gcc -o sd sundown.c -L. -lsundown
然而,当我运行它时,我得到了以下错误。
./sd: 加载共享库时出错: libsundown.so: 无法打开共享对象 文件:没有这样的文件或目录
ls 的输出是。
$ ls
libsundown.so libsundown.so.1 sundown.c sd
为什么ld找不到共享库?
【问题讨论】:
-
将
.添加到LD_LIBRARY_PATH环境变量? -
@JonLin 哇。那确实奏效了。但是为什么
-L标志不起作用? -
-L 告诉 gcc 在哪里查找库以便它可以链接,而不是编译后的二进制文件
-
@JonLin 我计划分发已编译的二进制文件。如何在不强制人们编辑
LD_LIBRARY_PATH的情况下分发库?
标签: gcc shared-libraries ld