gpt4 book ai didi

c - gcc 链接选项 -L : Alternative ways how to specify the path to the dynamic library

转载 作者:太空狗 更新时间:2023-10-29 15:56:19 25 4
gpt4 key购买 nike

如果我用“-L”编译我的源代码。可以找到动态库libmd5.so。

gcc main.c -g -O2 -Wall -o main -L. -lmd5 -lcr

但是如果我不使用“-L.”选项,链接器就找不到动态库。我怎样才能改变它而不必调用“-L”?

(附加信息 libmd5.so 和 libmd5.so.1.0.1 位于/home/user/ba)

最佳答案

-L 标志确实没有任何问题,因此您不应该如此努力地摆脱它 - 是不是在运行时您遇到了问题,因为系统不会加载您链接到的库?这里有一些选项:

  • 将/home/user/ba 添加到/etc/ld.so.conf(或适用于您的操作系统的类似文件),然后运行 ​​ldconfig。这将是全系统的。
  • 设置 LIBRARY_PATH(链接时)和 LD_LIBRARY_PATH(运行时)环境变量。 export LD_LIBRARY_PATH=/home/user/baexport LIBRARY_PATH=/home/user/ba 。这仅对当前 shell 有效。
  • 在可执行文件中设置 rpath(尽管此处您仍然需要 -L .)。将 -L/home/user/ba -Wl,-rpath,/home/user/ba 添加到您的链接器标志。这将仅对您正在制作的可执行文件有效。
  • 将您的共享库放在系统范围的库搜索路径中,例如 /usr/lib。这将是全系统的。

以上内容在运行时也有影响 - 当您运行应用程序时,它会尝试在/home/user/ba 或系统的其他库搜索路径中查找 libmd5.so。

关于c - gcc 链接选项 -L : Alternative ways how to specify the path to the dynamic library,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3374767/

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