草庐IT

linux - 如何打印 ld(linker) 搜索路径

按搜索顺序打印ld查找的搜索路径的方法是什么。 最佳答案 您可以通过执行以下命令来做到这一点:ld--verbose|grepSEARCH_DIR|tr-s';'\\012gcc将一些额外的-L路径传递给链接器,您可以使用以下命令列出这些路径:gcc-print-search-dirs|sed'/^lib/b1;d;:1;s,/[^/.][^/]*/\.\./,/,;t1;s,:[^=]*=,:;,;s,;,;,g'|tr\;\\012建议使用ld.so.conf和ldconfig的答案不正确,因为它们引用运行时动态链接器搜索的路径

linux - "/usr/bin/ld: cannot find -lz"

我正在尝试在Ubuntu10.04下编译Android源代码。我收到一条错误消息,/usr/bin/ld:cannotfind-lz你能告诉我如何解决它吗?cannotfind-lz是什么意思?以下是完整的错误信息:external/qemu/Makefile.android:1101:warning:overridingcommandsfortarget`external/qemu/android/avd/hw-config-defs.h'external/qemu/Makefile.android:933:warning:ignoringoldcommandsfortarget`e

linux - "/usr/bin/ld: cannot find -lz"

我正在尝试在Ubuntu10.04下编译Android源代码。我收到一条错误消息,/usr/bin/ld:cannotfind-lz你能告诉我如何解决它吗?cannotfind-lz是什么意思?以下是完整的错误信息:external/qemu/Makefile.android:1101:warning:overridingcommandsfortarget`external/qemu/android/avd/hw-config-defs.h'external/qemu/Makefile.android:933:warning:ignoringoldcommandsfortarget`e

linux - ld 找不到现有的库

我正在尝试在这个Debianlenny系统上用g++链接一个应用程序。ld提示找不到指定的库。这里的具体示例是ImageMagick,但我在其他一些库中也遇到了类似的问题。我正在调用链接器:g++-w(..lotsof.ofiles/includedirectories/etc..)\-L/usr/lib-lmagicld提示:/usr/bin/ld:cannotfind-lmagic但是,libmagic存在:$locatelibmagic.so/usr/lib/libmagic.so.1/usr/lib/libmagic.so.1.0.0$ls-all/usr/lib/libmag

linux - ld 找不到现有的库

我正在尝试在这个Debianlenny系统上用g++链接一个应用程序。ld提示找不到指定的库。这里的具体示例是ImageMagick,但我在其他一些库中也遇到了类似的问题。我正在调用链接器:g++-w(..lotsof.ofiles/includedirectories/etc..)\-L/usr/lib-lmagicld提示:/usr/bin/ld:cannotfind-lmagic但是,libmagic存在:$locatelibmagic.so/usr/lib/libmagic.so.1/usr/lib/libmagic.so.1.0.0$ls-all/usr/lib/libmag

linux - 如何在linux中设置环境变量LD_LIBRARY_PATH

我先执行了命令:exportLD_LIBRARY_PATH=/usr/local/lib然后我打开了.bash_profile文件:vi~/.bash_profile。在这个文件中,我输入:LD_LIBRARY_PATH=/usr/local/libexportLD_LIBRARY_PATH如果终端关闭并重新启动,输入echo$LD_LIBRARY_PATH不会显示任何结果。如何永久设置路径? 最佳答案 您应该添加有关您的发行版的更多详细信息,例如在Ubuntu下,正确的做法是将自定义.conf文件添加到/etc/ld.so.con

linux - 如何在linux中设置环境变量LD_LIBRARY_PATH

我先执行了命令:exportLD_LIBRARY_PATH=/usr/local/lib然后我打开了.bash_profile文件:vi~/.bash_profile。在这个文件中,我输入:LD_LIBRARY_PATH=/usr/local/libexportLD_LIBRARY_PATH如果终端关闭并重新启动,输入echo$LD_LIBRARY_PATH不会显示任何结果。如何永久设置路径? 最佳答案 您应该添加有关您的发行版的更多详细信息,例如在Ubuntu下,正确的做法是将自定义.conf文件添加到/etc/ld.so.con

linux - .so、.la 和 .a 库文件有什么区别?

我知道.so文件是一种动态库(许多线程可以共享这样的库,因此内存中不需要有多个副本)。但是.a和.la有什么区别呢?这些都是静态库吗?如果动态库比静态库有很大的优势,为什么还有很多静态库?我什么时候应该尝试将代码构建到.so或.a中?[mirror@homeins_openvpn]$lslib/openvpn/plugins/-ltotal96-rw-r--r--1mirrormirror22892Sep223:25openvpn-plugin-auth-pam.a-rwxr-xr-x1mirrormirror931Sep223:25openvpn-plugin-auth-pam.la

linux - .so、.la 和 .a 库文件有什么区别?

我知道.so文件是一种动态库(许多线程可以共享这样的库,因此内存中不需要有多个副本)。但是.a和.la有什么区别呢?这些都是静态库吗?如果动态库比静态库有很大的优势,为什么还有很多静态库?我什么时候应该尝试将代码构建到.so或.a中?[mirror@homeins_openvpn]$lslib/openvpn/plugins/-ltotal96-rw-r--r--1mirrormirror22892Sep223:25openvpn-plugin-auth-pam.a-rwxr-xr-x1mirrormirror931Sep223:25openvpn-plugin-auth-pam.la

c - 什么是 LD_PRELOAD 技巧?

我最近在proggit上看到了对它的引用。并且(截至目前)没有解释。我怀疑this可能是这样,但我不确定。 最佳答案 如果您将LD_PRELOAD设置为共享对象的路径,则该文件将在任何其他库(包括C运行时,libc.so)。因此,要使用您的特殊malloc()实现运行ls,请执行以下操作:$LD_PRELOAD=/path/to/my/malloc.so/bin/ls 关于c-什么是LD_PRELOAD技巧?,我们在StackOverflow上找到一个类似的问题: