标签: libraries

Windows 7“库” - 你如何备份它们?

我最近升级到了 Windows 7,它似乎希望我们将文件组织到独立于存储文件的物理文件夹的“库”中。

我的数据存储在与 Windows 不同的驱动器上,因此单独备份。如何确保库结构与我的数据一起备份?当我重新安装 Windows 时(我定期这样做),我不想丢失我所有的图书馆组织。

backup windows-7 libraries

9
推荐指数
1
解决办法
2万
查看次数

Linux 动态库中的数字后缀是什么意思?

下面是一个例子:

~$ ls /lib/*.so* | head -n 10
/lib/ld-2.13.so
/lib/ld-Linux.so.2
/lib/libacl.so
/lib/libacl.so.1
/lib/libacl.so.1.1.0
/lib/libanl-2.13.so
/lib/libanl.so.1
/lib/libattr.so
/lib/libattr.so.1
/lib/libattr.so.1.1.0
Run Code Online (Sandbox Code Playgroud)

后面的数字so(例如最后一行)1.1.0是什么意思?

我的第一个猜测是它们是版本号,但是:

~$ pacman -Qo /lib/libattr.so*
/lib/libattr.so is owned by attr 2.4.46-1
/lib/libattr.so.1 is owned by attr 2.4.46-1
/lib/libattr.so.1.1.0 is owned by attr 2.4.46-1
Run Code Online (Sandbox Code Playgroud)

所以1.1.0似乎与库的版本没有任何联系,据报道是2.4.46.

linux numbering libraries

9
推荐指数
1
解决办法
3510
查看次数

Ubuntu Linux下安装库和头文件进行C/C++开发

我不得不承认,每次我必须满足某些 C 或 C++ 代码的依赖关系时,我都感到完全迷失了。目前,我使用的是Ubuntu 9.10(Karmic Koala),但我还记得 Windows 中同样的凄凉感觉。

我真的认为我确实了解 C、C++、静态和动态库、头文件和链接,以及数据包管理器的“能力”,但是说到实践部分,我完全不知道该怎么做。即使我以某种方式管理它,我也不知道我是如何到达那里的,也没有从中学到任何东西。

例如,今天我想使用声明“它使用 glib2、curl 和 openssl”的代码。最后,我想通了curl并且openssl已经安装了,但是我需要libcurl3-dev通过我的数据包管理器进行安装,这也需要(并安装),libcurl4-openssl-dev这样我就不必担心 OpenSSL。但我不得不从 67 个听起来相似的替代方案中选择这些数据包名称。并且glib,另一方面,由于根本没有匹配的数据包,因此必须手动下载和构建。

我花了几个小时才发现这一点,这不是第一次。所以我的问题是:

当我对依赖项有一个模糊的描述时:

  • 我如何找出哪些已经安装?
  • 我如何确定哪些可以通过安装软件包来实现?
  • 我怎么知道这些包的确切名称?
  • 如果一个包必须从源代码构建,我如何确保我不会迷失在这个源代码的无休止的依赖中,以及那些依赖的依赖中......?
  • 我想我还需要将库与我的目标文件链接起来。如果单个数据包带有多个静态库文件,我怎么知道(无需反复试验)要链接哪个?

linux dependencies c c++ libraries

8
推荐指数
1
解决办法
2万
查看次数

如何读取 Windows 休眠文件 (hiberfil.sys) 以提取数据?

我需要通过解析来找出休眠文件中存储了哪些数据。但是,到目前为止,我只能通过在十六进制编辑器中打开它然后在其中搜索字符串来手动执行此操作。

我了解了SandMan 库,但没有任何资源。知道如何读取文件吗?或者是否有任何工具/库或其他方法可以这样做?

windows hibernate libraries

8
推荐指数
1
解决办法
1万
查看次数

libreadline.so.5:没有这样的文件或目录

我只是尝试运行通过 .deb 包安装的程序并收到此错误:

error while loading shared libraries: libreadline.so.5: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

有谁知道libreadline是哪个库或包的一部分?如果是这样,我如何安装并确保它是第 5 版?

谢谢!

debian packages libraries installation

7
推荐指数
1
解决办法
9877
查看次数

我可以从命令提示符浏览 Windows 7 库吗?

如果我在 Windows 7 命令提示符下,有什么方法可以导航到我的库之一?

例如像

cd libraries:\code
Run Code Online (Sandbox Code Playgroud)

windows-7 command-line libraries

7
推荐指数
2
解决办法
5760
查看次数

将库和标题放在 Windows 的何处(来自 unix?)

当 unix/linux 程序需要“东西”时,我通常将(或 dpkg 为我放置)库和头文件分别放在 /usr/lib 和 /usr/include 中。

我最近下载了一个我希望在 Windows 上使用的库,最近在我的 linux 机器上这样做之后,它提供了一个预构建的 Windows 二进制文件的下载。当然,这带有属于库的 .dll、.lib 和 .h 文件。

我的问题是,是否有任何范例或模式可以放置这些文件,以便我可以从几个不同的程序/源文件中使用它们?随库提供的 README 没有提到这一点,所以请原谅我对 unix 的无知。另外,我使用的是命令行/gcc 工具链,而不是 VC。

unix windows-7 path headers libraries

7
推荐指数
1
解决办法
4287
查看次数

没有 root 权限的 FUSE fs(例如 LD_PRELOAD 网关或 proot 插件)

在我没有 root 访问权限并且未安装 FUSE 的系统上(或者我没有足够的权限来创建新的挂载),如何启动保险丝文件系统(例如 sshfs 或一些基于 FUSE 的系统) unionfs)并从(通常)任何通过 LD_PRELOAD hack 实现的程序访问它,而不涉及内核或 root 权限?

\n

我正在寻找一种现有的解决方案,例如其中之一(或可以轻松组装以获得其中之一的砖块):

\n
    \n
  • 通往 FUSE 的 LD_PRELOAD 网关?有已经存在的吗?
  • \n
  • 现有的 proot 插件,它将 FS 系统调用转发到 FUSE 文件系统(例如转发到 sshfs/unionfs/\xe2\x80\xa6)
  • \n
  • 转发到 FUSE 的现有插件或另一个虚拟文件系统覆盖的扩展(AVFS、fakechroot、\xe2\x80\xa6)
  • \n
  • 提供名为mylib_openmylib_writemylib_close\xe2\x80\xa6 等函数的库,这些函数将调用转发到 FUSE 文件系统。这使得从源代码(仅#define open mylib_open)编译时修补特定程序或修补 proot、fakechroot、AVFS 或其他一些 vfs 变得相当容易。
  • \n
  • 上述任何一种,使用一个单独的进程来代替内核的角色(保留挂载点和与 FUSE 文件系统的连接,并充当服务器,以便多个客户端进程可以看到相同的 VFS)。
  • \n
  • 我不认为qemu-user可以用来在自己的环境中运行真正的FUSE,因为qemu-user不模拟内核IIUC,并且安装qemu-system现在通常需要root,并且尝试在没有root权限的情况下运行qemu-systemkvm会很慢。
  • \n
\n

我发现了类似的问题,但没有一个解决与现有 …

linux filesystems fuse libraries

7
推荐指数
0
解决办法
998
查看次数

如何在非标准路径中构建自给自足的 gcc/glibc/binutils 集?

假设一组定制的gcc/glibc/binutils都在$prefix(例如/home/user/path

我想要:

  1. gcc寻找图书馆$prefix/lib64而不是/lib64
  2. gcc寻找标题$prefix/include而不是/include
  3. 在使用$prefix/lib64/ld-linux-x86-64.so.2作为(硬编码)装载机路径,而不是/lib64/ld-linux-x86-64.so.2
  4. 动态加载器来查找共享库$prefix/lib64而不是/lib64

我应该如何配置构建?我需要修改gcc's specs 文件或做其他事情吗?

gcc glibc headers libraries

6
推荐指数
1
解决办法
2501
查看次数

如何发现并列出 Linux 中软件使用的静态库?

背景:我们的 Linux 发行版有一个第三方供应商软件,我们目前正在测试该软件lubuntu。我们有安装文件和install.shshell 脚本,用于在正确的目录中安装该软件所需的二进制文件。

我们想确定该软件在内部使用哪些静态库(这样我们就可以判断它们是否已过时并在我们的环境中引入漏洞)。

到目前为止我们所做的:我们查看了ldd但它只列出了共享库或动态库。与 相同objdump。我们过去常常strings查看隐藏在其中一些二进制文件中的字符串,以查看库版本号等的标志。但对于大型二进制文件来说,这是一个非常耗时且低效的过程。

问题:在Linux环境下如何发现并列出软件中使用的静态库?

linux compile reverse-engineer libraries

6
推荐指数
1
解决办法
8984
查看次数