ld相关内容
我正在尝试为C ++中的Telegram Bot库构建一个小示例( https://github.com/reo7sp/tgbot-cpp#samples ),但是在链接时我得到以下输出: Undefined symbols for architecture x86_64: "_SSLv2_client_method", referenced from: boost::asi
..
我正尝试将此C库交叉编译为iOS库,即,用于armv7机器.我正在使用OSX机器来编译库.该项目设置为使用 Autoconf -这是我正在使用的选项: ./configure --host=arm-apple-darwin --prefix ~/dev/xmlrpc-c-1.25.28/iOS_bin_arm CFLAGS="-arch armv7s -isysroot /Applicati
..
我正在PC上编译Make文件.当我运行它时,它会产生以下错误: R_X86_64_PC32针对未定义的符号'strtoflt128'. 我的PC是Windows 8.1 64位.我已经安装了cygwin64,其中包含以下软件包; gcc-core4.9.3,gcc-g ++ 4.9.3,gcc-fortran 4.9.2-3. 解决方案 此符号由 libquadmath ,因此
..
我们公司目前使用CMake来为Windows构建我们的可执行文件.我正在努力使我们的应用程序在Mac上运行.到目前为止,该应用程序在Mac上均可正常运行.但是,当我尝试打开CMake为Mac创建的可执行文件时,在终端窗口中出现以下错误: Last login: Tue Apr 16 14:34:58 on ttys001 Locals-MacBook-Pro:~ auser$ /Users/
..
我正在努力了解如何使ld(在gcc arm嵌入式工具套件中)做我想要的事情: 仅作为示例,我有几个要链接的.o文件.说我 only 只希望在输出中有一个名为.foo的部分.我将其放在命令文件link.ld中: SECTIONS{ .foo : {*(.text)} } 并转到"ld -T link.ld file1.o fil2.o -o output.o" 然后我在ou
..
代码是这样的: public class Thingy { public static void main(String[] args) { System.out.println(Math.random()); } } 所以,绝对不是异常情况,只是一个基本示例. 当我尝试使用GCJ的javac实现代替字节代码而不是OpenJDK时,它可以正常工作. ne
..
我有一个静态链接的应用程序二进制文件,它链接到多个用户库和pthread库.该应用程序仅使用这些库中每个库的有限功能集.从以前的帖子库和可执行文件的大小以及我的实验我意识到,链接器仅包含使用/需要的功能(在可执行文件中),而不包含库的全部内容. 我想找出每个相应库中的哪些函数已链接 到可执行文件及其地址(VMA).最终,我想根据映射到文本段的函数(在库中)为每个库编译一个包含开始和结束虚拟内
..
所以我在GitLab CI上有这种奇怪的行为.我可以使用它,但是现在我想知道为什么它可以使用. 首先,我从GitLab CI开始.我在机器(Arch Linux)上安装了docker本地运行程序,因此我无需等待就可以进行测试.我用googletest框架编写了一个测试(只有一个断言为true).我在本地触发了脚本,一切正常.所有测试均在本地docker映像中通过. 现在,当一切正常时,
..
我有这个小的测试代码atfork_demo.c: #include #include void hello_from_fork_prepare() { printf("Hello from atfork prepare.\n"); fflush(stdout); } void register_hello_from_fork_p
..
从C中访问*ABS*(绝对值,不可重定位)符号的实际值的正确方法是什么? 我正在使用ld将数据(... HTML模板)嵌入可执行文件中(...按照 ld -r -b binary [the_file_to_be_embedded] -o [some_object.o] 然后,我正在使用 const char _some_object_start; const char _some
..
我在ubuntu 18.04(gcc 7.3)中学习C语言 输入make all命令时,会发生此错误: /usr/bin/x86_64-linux-gnu-ld:找不到-lkeccak Makefile如下. CC=gcc CFLAGS=-03 -fomit-frame-pointer -msse2avx -mavx2 -march=native -std=c99 all
..
通常,用户程序二进制文件将被装入程序地址空间中的低地址(通常在0x400000附近),该地址将在elf二进制文件中指定(对于linux). 我们是否可以强制用户二进制文件在高地址处加载,可能在libc或其他此类库已加载的地址的2GB地址范围内? 我尝试过在网上找到解决方案,但是找不到任何具体的解决方案. (我正在使用Ubuntu 12.10 64位OS) 谢谢 解决方
..
在macOS上汇编以下代码: global start default rel section .text start: lea rdx, [buffer + 0] lea rdx, [buffer + 1] lea rdx, [buffer + 2] lea rdx, [buffer + 3] lea rdx, [buffer + 4]
..
我正在使用g ++编译和链接一个由大约15个c ++源文件和4个共享对象文件组成的项目.最近,链接时间增加了一倍以上,但是我没有可用的makefile历史记录.有什么方法可以对g ++进行概要分析,以查看链接的哪部分需要花费很长时间? 编辑:在我注意到makefile一直在使用-O3优化之后,我设法通过删除该开关将链接时间减半了.如果没有反复试验,有什么好的方法可以找到这个? 编辑:我
..
虽然在生成的二进制文件或ELF文件的上下文中可以清楚地知道什么是节,但是文档中的许多位置(与所使用的编译器无关)将它们称为Input或Output节. 两者之间有什么区别? 解决方案 链接器使用目标文件(可能还有共享库)并输出 可执行文件或共享库.输入对象文件由命名 部分-.text,.data,.rodata,.bss等.输出文件也是如此. 它 是链接器工作的主要部分,用于合
..
我正在尝试为我的arm路由器交叉编译和链接ubuntu上的聚合,但出现以下错误.过去,我认为我可以通过设置适当的环境变量来解决此问题,但这一次不起作用.谁能帮我弄清楚为什么这可能行不通: /home/ubuntu/Downloads/toolchain-arm_cortex-a9_gcc-4.9-linaro_musl-1.1.2_eabi/bin/../lib64/gcc/arm-open
..
这是我的问题. 我有一个链接程序脚本,可以链接标准的arm7nommu-uClinux内核: OUTPUT_ARCH(arm) ENTRY(stext) SECTIONS { . = 0x0; .vectors : { *(.resetvector) } . = 0x8000; .init : { /* Init code and data */
..
当我编译linphone源代码时,下面发生了错误.谁能告诉我如何解决它.谢谢你. ld: unrecognised emulation mode: armelf_linux_eabi Supported emulations: elf_i386 i386linux elf32_x86_64 elf_x86_64 elf_l1om elf_k1om i386pep i386pe C compi
..
我想在OS X上使用clone系统调用.这是Unix系统调用,因此应该没有问题,对吧?我已经成功尝试使用fork,vfork和其他类似功能.这是我正在尝试的程序: #include //Clone resides here #include //standard library #include #include
..
我想在Linux上编译以下程序: .global _start .text _start: mov $1, %rax mov $1, %rdi mov $msg, %rsi mov $13, %rdx syscall mov $60, %rax xor %rdi, %rdi syscall msg:
..