草庐IT

shared-libraries

全部标签

python - python中path/usr/share/pyshared有什么用?

我发现一些用python开发的应用会把文件丢到这个路径下,这个路径有什么用,应该放什么文件? 最佳答案 该目录包含可由多个python版本共享的独立于体系结构的python模块。不要操纵该目录。参见DebianPythonPolicyChapter1-PythonPackaging 关于python-python中path/usr/share/pyshared有什么用?,我们在StackOverflow上找到一个类似的问题: https://stackover

c - 用我自己的 close() 函数替换 Linux 中的 close() 函数

我试图在Linux中提供我自己的close()函数实现。为什么?因为我刚刚发现你可以这样做,而且听起来很有趣。这是myclose.c:#includeintclose(intfd){printf("Closingfd:%d\n",fd);return0;}这是我的生成文件:all:myclose.somy-close.so%.so:%.ogcc-shared-o$@$编译后,我运行:exportLD_PRELOAD=`pwd`/myclose.so然后我运行:catmyclose.c我得到的输出是:#includeintclose(intfd){printf("Closingfd:%d

c - 用我自己的 close() 函数替换 Linux 中的 close() 函数

我试图在Linux中提供我自己的close()函数实现。为什么?因为我刚刚发现你可以这样做,而且听起来很有趣。这是myclose.c:#includeintclose(intfd){printf("Closingfd:%d\n",fd);return0;}这是我的生成文件:all:myclose.somy-close.so%.so:%.ogcc-shared-o$@$编译后,我运行:exportLD_PRELOAD=`pwd`/myclose.so然后我运行:catmyclose.c我得到的输出是:#includeintclose(intfd){printf("Closingfd:%d

linux - 如何在 Linux 上根据 CPU 能力进行运行时绑定(bind)

是否可以让一个linux库(例如“libloader.so”)加载另一个库来解析任何外部符号?我有一大堆代码有条件地编译以支持SIMD级别(SSE2、AVX、AVX2)。如果构建平台与运行时平台相同,则此方法工作正常。但它阻碍了跨不同处理器代的重用。一种想法是将调用function的executable链接到不直接实现function的libloader.so>。相反,它解析(绑定(bind)?)来自另一个加载库的符号,例如libimpl_sse2.so、libimpl_avx2.so等取决于cpuflags。有数百个函数需要以这种方式动态绑定(bind),因此更改声明或调用代码是不切

linux - 如何在 Linux 上根据 CPU 能力进行运行时绑定(bind)

是否可以让一个linux库(例如“libloader.so”)加载另一个库来解析任何外部符号?我有一大堆代码有条件地编译以支持SIMD级别(SSE2、AVX、AVX2)。如果构建平台与运行时平台相同,则此方法工作正常。但它阻碍了跨不同处理器代的重用。一种想法是将调用function的executable链接到不直接实现function的libloader.so>。相反,它解析(绑定(bind)?)来自另一个加载库的符号,例如libimpl_sse2.so、libimpl_avx2.so等取决于cpuflags。有数百个函数需要以这种方式动态绑定(bind),因此更改声明或调用代码是不切

linux - 程序没有找到 so 库,即使 ldconfig 知道它

libidl.so.7.1的路径在ld.so.conf中,库也在缓存中:$/sbin/ldconfig-p|greplibidl.so.7.1libidl.so.7.1(libc6)=>/opt/itt/idl71/bin/bin.linux.x86/libidl.so.7.1但是,由于某种原因,它没有被ldd找到:$ldd_pyIDLmodule.so|greplibidl.so.7.1libidl.so.7.1=>notfound然而,如果我显式地将路径添加到LD_LIBRARY_PATH,它会起作用:$exportLD_LIBRARY_PATH=/opt/itt/idl71/bi

linux - 程序没有找到 so 库,即使 ldconfig 知道它

libidl.so.7.1的路径在ld.so.conf中,库也在缓存中:$/sbin/ldconfig-p|greplibidl.so.7.1libidl.so.7.1(libc6)=>/opt/itt/idl71/bin/bin.linux.x86/libidl.so.7.1但是,由于某种原因,它没有被ldd找到:$ldd_pyIDLmodule.so|greplibidl.so.7.1libidl.so.7.1=>notfound然而,如果我显式地将路径添加到LD_LIBRARY_PATH,它会起作用:$exportLD_LIBRARY_PATH=/opt/itt/idl71/bi

linux - 使用 gdbserver 调试共享库

我在目标和CodeSourceryIDE上使用gdbserver。我的硬件是带有omap3530的口香糖。我可以单步执行主应用程序中的代码,但如果我尝试单步执行共享库中的函数,我将获得内存地址并且调试器会终止。这是我的库,它被编译并复制到目标系统上的/lib文件夹。(它确实有调试符号)我试图使用.gbdinit文件来设置solib-absolute-prefix/lib以下是来自gdb跟踪的警告:903,05613-gdb-setsysroot-on-target/lib903,06513^done903,065(gdb)903,06514-target-selectremote192

linux - 使用 gdbserver 调试共享库

我在目标和CodeSourceryIDE上使用gdbserver。我的硬件是带有omap3530的口香糖。我可以单步执行主应用程序中的代码,但如果我尝试单步执行共享库中的函数,我将获得内存地址并且调试器会终止。这是我的库,它被编译并复制到目标系统上的/lib文件夹。(它确实有调试符号)我试图使用.gbdinit文件来设置solib-absolute-prefix/lib以下是来自gdb跟踪的警告:903,05613-gdb-setsysroot-on-target/lib903,06513^done903,065(gdb)903,06514-target-selectremote192

linux - 正确使用软件包的 LD_LIBRARY_PATH 或 ldconfig

我知道使用ldconfig和LD_LIBRARY_PATH的一般基础知识,但我希望能得到一些大师的帮助来解决我的情况。我有一个可移植的软件包,它位于自己的目录中,许多库都有自己的版本。有很多二进制文件和脚本从这个目录运行。一些二进制文件(apache、php、postgres)也可能在系统上安装了单独的版本。由于php可能有两个版本,如果系统无法判断是哪个版本,创建/etc/ld.so.conf.d/myapp.conf是不够的“myapp”使用ldconfig文件。我正在寻找配置此类系统的最佳实践。最初设置软件包的人导出了LD_LIBRARY_PATH,以便系统上的所有应用程序都使用