问题标签 [rpath]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
erlang - 从源代码构建 Erlang OTP 的 OpenSSL 错误
尝试构建一个完全独立的 OTP,它可以独立于系统上安装的库移动。
从源代码构建 OpenSSL 1.0.0d,如下所示:
然后是 OTP R14B03:
然后,Erlang 的 Make 失败如下:
我们说的是 Ubuntu 10.04。非常感谢任何帮助 - 谢谢!
linux - LD_PRELOAD 更改 LD_LIBRARY_PATH
我有一个特殊的问题。我有一个使用 gcc-4.2 构建的共享库“my_tracker.so”。这个共享库现在依赖于 libgcc_s.so.1 (GCC 4.2)。我做了'ldd my_tracker.so',它从/lib64中获取了libgcc_s.so.1。
我正在运行
在我的脚本里面。我想确保 vncserver[vnc_install]/lib/vnclibs/
从LD_LIBRARY_PATH
.
但是,在执行我的脚本后,看起来 vncserver 正在从/lib64
.
我的预加载共享库“my_tracker.so”的加载是否会在LD_LIBRARY_PATH
找到 libgcc_s.so.1 (GCC 4.2) 的位置之前添加?
如果是这样,我该如何解决这个问题?
问候约翰
makefile - 如何在生成文件中指定 RPATH?
我正在尝试在我的二进制文件中指定 rpath。我的makefile看起来像这样-
但是,当我使用命令查询 rpath 时,我readelf -a ./main | grep rpath
什么也没得到,我尝试将 rpath 指定为,LDFLAGS= "-rpath=../libs/"
但即使这样似乎也不起作用。
有人可以发布一个关于我应该如何在生成文件中指定 rpath 的示例吗?
GCC 和 ld 版本是-
xcode3.2 - @rpath 是否适用于查找从另一个 .dylib 加载/调用的 .dylib?
我刚刚发现了使用 dlopen 加载 .dylib 文件的 @rpath,并且需要一些帮助来理解它们。我在 OSX 机器上使用 Xcode 3.2.5。
我有几个 .dylib 调用其他 .dylib,它们也互相调用。@rpath 似乎适用于加载的初始 .dylib,但是一旦我使用另一个 .dylib 进行 dlopen 调用,该 .dylib 使用先前使用 @rpath 找到并加载的第一个 .dyblib 文件,dlopen 将失败,说它可以'找不到原始的.dylib。
@rpath 是否仅适用于与 dlopen 一起使用的文件,还是也用于解决正在打开的 dylib 文件内部的依赖关系?
更新:
我的进一步发现导致我使用 install_name_tools 来更改相互依赖关系以拥有它们的@rpath。这是这样做的正确方法吗?
macos - Mac os x上的Cmake,使用完整路径链接库
我正在尝试用 cmake 构建一个 python 扩展。这是 cmake 列表:
该库已正确编译和链接,但是当我使用 otool 查看喜欢的库时,我得到:
如何让 CMake 将 drtile.so 与 vigranumpycore.so 和 libboost_python.dylib 的完整路径链接起来?谢谢!
gcc - 如何阻止 MinGW 和 MSYS 修改命令行中给出的路径名
在 Windows 上,我正在使用 CodeSourcery 的交叉编译器套件为 ARM/Linux 交叉编译一个程序。我使用 MinGW MSYS 作为我的命令解释器,它经常会破坏我的路径和路径名。例如,为了构建我的程序,我调用
当然,我想/usr/lib/myrpath
将逐字插入myprogram
可执行文件中——我正在编译的 ARM Linux 目标不使用 MinGW 或 MSYS。但这就是最终的结果:
不完全是我想要的。如果我直接在 cmd.exe 命令行上调用 GCC,我会在可执行文件中获得正确的 rpath。如果我在 MSYS 命令行上调用 GCC,我会得到损坏的 rpath。如果我使用从 cmd.exe 命令行使用 make 运行的 Makefile 调用 GCC,我仍然会得到一个损坏的 rpath (!)
有什么想法可以关闭这种烦人的行为吗?
c - linux链接器/加载器搜索顺序
这个问题与编译和动态链接期间查找库的方式有关。
考虑这个小项目:
- 项目
- 利巴
- 一个.hpp
- a.cpp
- 库
- b.hpp
- b.cpp
- 主文件
- 利巴
a.hpp:
一个.cpp:
b.hpp:
b.cpp:
主.cpp:
libb 编译为:
光盘库;g++ -shared -o libb.so b.cpp
liba 编译为:
光盘库;g++ -I../libb/ -L../libb/ -lb -shared -o liba.so -Wl,-rpath /full/path/to/project/libb/ a.cpp
和 main 编译:
g++ -Lliba -la -Wl,-rpath /full/path/to/project/liba/main.cpp
编译完成没有错误,但是执行a.out时,找不到libb.so。
ldd 输出:
请注意, libb.so 出现两次。有一次,动态链接器找不到库,有一次是。我假设,在第二种情况下,它使用嵌入在 liba.so 中的 rpath。
当然,有多种方法可以解决这个问题(例如 LD_LIBRARY_PATH,在编译 main.cpp 时嵌入正确的 rpath ...),但我更感兴趣的是为什么 main.cpp 的编译有效,而动态链接却没有不。
到目前为止,我假设使用相同的过程来搜索所需的库。是我遗漏了什么,还是一些我不知道的隐藏魔法?:)
(在带有 gcc 4.3.4 的 SLED11 盒子上进行了测试。)
macos - 在 Mac OS X 10.7.2 上构建 libjingle 时出现链接错误
我想在 Mac OS X 10.7.2 上构建 libjingle。我刚刚克服了编译器错误并现在遇到了链接器错误。路径/Developer/libjingle/libjingle-0.6.3/talk/build/dbg/lib
存在,但系统显示未知。我怎样才能修复它并使 libjingle 真正起作用?
cmake - 带包装的 CMAKE RPATH
我正在使用 cmake 创建包
我有以下结构
其中 lib1 和 lib2 是外部动态库。如何设置 RPATH 使其自动与 lib1 和 lib2 链接?
makefile - 如何使用相对 rpath 编译 OpenSSL
我一直在尝试使用以下 rpath 编译 openssl 1.0.0g:
每次 I readelf -d apps/openssl
,根据我尝试的转义变化,我得到如下结果:
我想在不使用 chrpath 等外部工具的情况下设置我的 rpath。有可能吗?我基本上会接受任何不涉及使用外部工具(如 chrpath)的东西(尽管我已经完成了)。
理想情况下,我想通过在命令行上传递选项(任何形式的-Wl,-rpath,$ORIGIN/../lib64
)来做到这一点。
我不介意编辑生成的 Makefile,这是我最后尝试的。如果我能得到它打印一个愚蠢的美元符号!我尝试在 BUILDENV= 块下修改 LIBRPATH ,但没有成功。迄今为止我最好的成绩:
我已经阅读了各种与 rpath 相关的问题,并尝试了各种转义和引用技巧,但到目前为止没有任何效果!