ld相关内容

防止GCC LTO删除功能

我使用GCC-ARM-Embedded和FreeRTOS. FreeRTOS具有功能vTaskSwitchContext(),仅在某些情况下使用 内联汇编代码. 问题是:当我使用LTO时,GCC不会考虑内联汇编代码,并认为未使用该函数,因此将其删除.然后,链接器将失败,因为无法解析内联汇编代码中的函数调用. 我会应用__attribute__((used)),但是我不想触摸FreeRT ..
发布时间:2020-04-30 08:34:25 其他开发

编译z3时ld链接错误

我在编译z3时遇到以下错误.对于ld来说似乎是错误的.我想知道如何做才能使其编译.这是git中opt分支的问题.我在使用OS X 10.9.2(13C1021)的iMac上 我使用的xcode版本5.1.1(5B1008)的xcode-select工具安装到版本2333.我使用的端口版本是2.2.1,安装了ld. 该问题似乎是一个链接问题.我将链接加载器用作:ld64 @ 136_2 + llvm ..
发布时间:2020-04-30 08:34:21 其他开发

如何确定位置计数器“."的基地址.什么时候VMA和LMA不同?

根据ld手册上的特殊符号. ,即位置计数器. 注意:.实际上是指从 当前包含的对象.通常这是SECTIONS语句, 其起始地址为0,因此为.可以用作绝对地址. 如果 .在部分说明中使用,但是它指的是 从该节开始的字节偏移量,而不是绝对地址. 因此,在这样的脚本中: SECTIONS { . = 0x100 .text: { *(.text) ..
发布时间:2020-04-30 08:34:19 其他开发

OS X中的GNU Linker等效命令

我正在阅读关于操作系统的下一本书.在第43页中,他们使用以下命令将带注释的机器代码转换为原始机器代码文件: $ ld -o basic.bin -Ttext 0x0 --oformat binary basic.o 在MacBook Pro(运行Mavericks)中运行该命令时,我得到: ld: unknown option: -Ttext 我进行了一些研究,发现OS X的链 ..
发布时间:2020-04-30 08:34:12 其他开发

与libQt5Core的链接

我使用在线安装程序安装了Qt5.4(在ubuntu 14上运行).我正在尝试编译我的c ++源代码并针对libQt5Core进行链接,但ld抛出错误: make g++ -Wall test.o Party.o Communication.o FileParser.o PeerConnection.o ServerModule.o Utilities.o -o party -g -L/hom ..
发布时间:2020-04-30 08:34:08 C/C++开发

CPU相关代码:如何避免使用函数指针?

我有为多个CPU编写的性能关键代码.我在运行时检测CPU,并基于此对检测到的CPU使用适当的功能.因此,现在我必须使用函数指针并使用这些函数指针来调用函数: void do_something_neon(void); void do_something_armv6(void); void (*do_something)(void); if(cpu == NEON) { do_so ..
发布时间:2020-04-30 08:34:06 其他开发

将节注入到GNU ld脚本中; binutils版本之间的脚本兼容性.

我正在构建类似问题在我的情况下,有几个数组,每个数组都进入其自己的部分.ld_comp_array_ *,其中*与该数组的名称匹配.然后,我使用ld --verbose获取默认的链接描述文件,并通过将所有这些部分(已排序,以便不同数组的元素不会混合)放入输出部分进行修改: KEEP (*(SORT_BY_NAME(.ld_comp_array*))) 一切正常. 然后事情变得有点复 ..
发布时间:2020-04-30 08:34:04 其他开发

collect2.exe是做什么的?

当我检查gcc -v -o proggy.exe proggy.o生成的代码时,我发现命令行扩展为一大堆库选项和库,所有这些选项和库都使用collect2.exe链接在一起. ld.exe怎么了?为什么我看不到?有人可以向我解释一下collect2.exe做什么吗? 解决方案 collect2是一种实用程序,用于生成__main(在main开头调用的自动生成的函数)所依赖的构造函数表.在. ..
发布时间:2020-04-30 08:34:02 C/C++开发

如何用ld链接C ++目标文件

我正在尝试使用ld而不是g ++链接C ++的输出.我这样做只是为了学习如何做,而不是出于实际目的,所以请不要建议仅使用g ++. 看着这个问题的人这个问题当他们运行ld命令时会得到相同的错误: $ ld test.o -o test.out ld: warning: cannot find entry symbol _start; defaulting to 000000000040 ..
发布时间:2020-04-30 08:34:00 C/C++开发

最新SDK的SDKROOT路径

我正在使用Xcode构建旧代码并指定SDKROOT=/Developer/SDKs/MacOSX"${HOST_VERSION}".sdk/ 我想为系统上预装(?)的最新SDK指定SDKROOT.例如我已经在10.8上,并且想用-syslibroot指定SDKROOT,但是/Developer/SDKs/中没有这样的SDK.如果SDK_VERSION == HOST_VERSION,我应该完 ..
发布时间:2020-04-30 08:33:57 移动开发

如何确定最快的链接顺序?

我有大约50个不同的静态库链接到我的c ++项目中,并且链接平均需要70秒钟. 我发现,按照库的链接顺序移动这次会发生变化.我想这是可以预期的,如果链接器不必在到目前为止已建立的整个符号表中继续搜索一组符号. 我想我可以使用"nm"来获取静态库之间的依赖关系图.但是,那只会给我一个“正确"的链接顺序.获取最快的链接顺序会涉及哪些因素? 我感觉到,通过遍历将试图最小化某些数量的遍历 ..
发布时间:2020-04-30 08:33:53 C/C++开发

为什么我不能使用LD_LIBRARY_PATH覆盖动态库的搜索路径?

编辑:我解决了这个问题,解决方法如下. 我正在专用于科学计算的共享计算集群中构建代码,因此我只能控制主文件夹中的文件.尽管我以fftw为例,但我想了解具体原因,为什么我尝试设置LD_LIBRARY_PATH无效. 我在这样的主文件夹中建立fftw和fftw_mpi库 ./configure --prefix=$HOME/install/fftw --enable-mpi --en ..
发布时间:2020-04-30 08:33:48 服务器开发

在Linux中强制动态链接器在运行时加载库

有一点历史,我有3个库: 没有依赖项的"lib1.so" 与"lib1.so"链接的"lib2.so" 没有依赖项的“测试"可执行程序 我需要的是在运行时通过"dlopen"方法从“测试"可执行文件动态加载"lib2.so".问题在于"lib1.so"由于链接器不知道在哪里找到而无法自动加载. 我首先尝试像这样加载"lib1.so": void* ptr_lib1 = ..
发布时间:2020-04-30 08:33:41 服务器开发