ld

    1热度

    1回答

    我一直在努力了解gcc链接器的工作方式,以及在将共享库链接到另一个共享库时以及链接二进制文件与共享库时的情况。我使用的是Ubuntu 16.04.1 LTS,gcc 5.4.0和ld 2.26.1。 以下是在一些C源文件上执行的两套命令序列。 顺序1: - [email protected]:~/linktest6$ cat a.c #include <stdio.h> int a_func

    1热度

    1回答

    如果我的GNU LD链接脚本有OUTPUT_FORMAT(binary)的ld --gc-sections命令行标志似乎被忽略: $ cat gcs.c extern void magic(void); void callmagic(void) { magic(); } int uanswer = 42; int main(void) { return 0; } $ cat ofbin.scr O

    0热度

    1回答

    是否可以使用链接描述文件或映射文件来重命名符号? 我正在尝试修改一些混合使用C++和Fortran编写的代码,以便它可以在Linux上使用多个Fortran编译器。它目前是为Solaris Studio编译器编写的,并且启用了区分大小写选项。我想自动处理Fortran符号名称中的变体(例如从Makefile中)。 它似乎可以创建别名左右,包含链接脚本: C_Function_ = c_functi

    2热度

    1回答

    由于特定原因,我需要在我的ELF文件的末尾放置.text部分。 我试图以这种方式来实现这一目标: 我把默认的大型连接器脚本和移动.text部分SECTIONS { ... }部分的尽头。 $ readelf -S beronew [ #] Name Type Address Offset Size Size.Ent Flags - - Alignment

    0热度

    1回答

    我正在开发其中包含两个功能的多种实现静态库(libfb.a)文件的.o文件: foo.c中包含void foo() { ... }。 bar.c包含void bar() { ... }。 foobar.c包含void foo() { ... }和void bar() { ... }。 所有3个实现(...)是不同的,因为如果需要两者FOO和酒吧,它们两者可以更有效地实施,使用彼此。 我怎样才能.o

    1热度

    2回答

    我有一个使用std::regex的C++ 14应用程序。对于某些正则表达式,如果分页方面不可用,std::regex构造函数将抛出std::bad_cast(通过std::use_facet)。 我想将我的应用程序与作为.so发布的第三方库链接,但我没有源代码。这个库给出了glibc所需的所有内容的默认符号版本。它指定的版本是2.2.5(2002年发布)。例如,纳米告诉我: U [email pr

    0热度

    1回答

    我正在使用CMake为使用GNU工具链的瑞萨处理器构建可执行二进制文件。我从对象更改为静态库,并与中断表正确链接的问题。感谢Stackoverflow我发现了--whole-archive选项。 我的问题是,是否有链接器标志或方式显示我从库中链接的对象,以便知道链接器忽略哪些对象(因此这些将是没有未解决的符号的对象)?

    -1热度

    1回答

    我在写简单的makefile项目。 我想分两个步骤建立程序: 编译源文件 链接的对象和保存的目标文件在不同的目录成可执行 考虑的东西简单如: all: gcc -o ~/some_dir/main.o -c main.c ld -o my_program main.o 问题是调用directo ry不是“〜/ some_dir”,所以ld没有找到目标文件......我如何在

    0热度

    1回答

    我想越过使用cmake和我从这里下载的预编译工具链Linaro的编译的raspberrypi2: 混帐克隆https://github.com/raspberrypi/tools 当我尝试做cmake的上我的项目,我得到以下错误: /myhome/libs/raspberry/tools/arm-bcm2708/gcc-linaro-arm-linux- gnueabihf-raspbian-x

    0热度

    1回答

    在readelf --segments为一个共享库(Linux的x86_64的)输出,前几个节目标题有: Segment Sections... 00 .note.gnu.build-id .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .plt .text .fini .r