为子进程定制 ld-linux.so
我正在运行一个带有一组自定义库的程序,如下所示: /path/to/my/ld-linux-x86-64.so.2 --library-path /path/to/my/libs /path/to/my/executable 这…
寻找全局符号的子插件的 dlmopen 命名空间?
我有两个以上符号不兼容的库(libA、libB),因此我将它们加载到 RTLD_LOCAL 命名空间中。然而,每个库都可能加载其他库,这些库似乎在全局名称空间中…
GCC:-lxxx 与(libxxx.a 或 libxxx.so)
使用GCC编译时,-lxxx和libxxx.a或libxxx.so之间有什么区别吗? 在CSAPP第7章:链接一书中,它说: -lvector 参数是 libvector.a 的简写 ,因此 -lxxx…
.bss 部分中一个变量的不同内存
我有一个巨大的 DDR 内存 (2GB),具有巨大的访问时间和微小的内部 RAM (1MB),具有极小的访问时间。此时我在 DDR 中有整个 .bss 部分。 .bss 部分包含…
Mac M1 arm64 架构上的 ld 链接问题,使用 GNU11 编译器 gcc、gfortran
我正在 Mac M1(arm64 架构)、Big Sur 上构建一组库,并使用 GNU11 编译器(gcc、gfortran、g++)以及 openmpi 4.1.2 进行多处理。所有操作都是使用 …
为什么在将代码直接编译为可执行文件而不是编译为目标文件然后手动链接时会得到额外的系统调用?
我想在 Ubuntu 上使用 GNU C 编译器编译此 C 代码,而不链接任何标准库,只执行以下代码。 static void exit(long long code) {asm inline ("movq $60…
Binutils / Linker - 静态解析外部符号引用
背景 我正在开发一些针对具有最新 GNU 工具链的旧嵌入式设备的项目。 由于内存非常有限,代码被分为主要部分和一些覆盖层,其中覆盖层被压缩以节省空…
为什么 ELF 可执行文件可以有 4 个 LOAD 段?
有一个远程 64 位 *nix 服务器可以编译用户提供的代码(应该用 Rust 编写,但我认为这并不重要,因为它使用 LLVM)。我不知道它使用哪个编译器/链接器…
`ld` 未定义引用错误,但库由 CMake 链接并且符号存在
我有一个像这样的 CMake 文件: cmake_minimum_required(VERSION 3.12) project(cpp-service VERSION 0.1.0) add_compile_definitions(OPENVDB_7_ABI_…
将 GCC 构建的目标文件与 LLVM 和 OpenMP 链接
我面临的情况是,我必须将一些使用 GCC 构建的目标文件链接到基于 LLVM 的应用程序。问题在于应用程序依赖于 LLVM 的 OpenMP 库,而 GCC 对象引用了 G…
nvcc 未知选项 -no_pie
在我的 mac(Snow Leopard) 上更新 CUDA 后,nvidia 的 nvcc 编译器在编译时表现得很奇怪: nvcc batched_gemm.cu 我收到以下编译错误,并且我不知道如…
收到“ld: 找不到 -lcunit” CUnit 错误
我在 Windows 7 上使用 NetBeans 7.1。我下载了 CUnit 存档并使用存档提供的 shell 脚本来安装它($make install 等)。我使用 Cygwin 作为编译器,每…
如何将目录添加到 ld 搜索路径以进行 ARM 交叉编译?
我正在尝试将 util-linux 配置为使用 CodeSourcery 中的 arm-none-linux-gnueabi 进行交叉编译。到目前为止,我唯一的问题是它找不到我编译的 ncurses…