ld

    1热度

    1回答

    我是一名初学者......我想写入我的嵌入式闪存中的特定内存位置......我如何在我的C头文件中提到它?然后使用链接器脚本将其链接到特定的内存位置。现在我已经将该数组声明为extern,并且编译正确。虽然喜欢,我需要告诉链接器,我需要在这个特定的位置。它应该在.ld文件中给出?什么是.dld文件?对于diab编译器,这不适用于GCC。我已经看到了一个用于冒泡排序的示例代码bubble.dld。但

    0热度

    1回答

    我正在运行OS X 10.12,并且正在开发基本的基于文​​本的操作系统。我开发了一个引导装载程序,似乎运行良好。我唯一的问题是,当我尝试将我的内核编译为纯二进制文件时,链接器将无法工作。我做了一些研究,我认为这是因为OS X运行Darwin链接器而不是GNU链接器。因此,我下载并安装了GNU binutils。然而,这仍然无法工作...... 这里是我的内核: void main() {

    2热度

    1回答

    我试图在32位科学Linux上编译铿锵3.9。 编译过程在93%失败,出现以下错误: [ 93%] Linking CXX executable ../../bin/clang /lib/ld-linux.so.2: could not read symbols: Memory exhausted collect2: error: ld returned 1 exit status gmak

    0热度

    1回答

    当检查目标文件例如其中之一/usr/lib32或/usr/lib与readelf -r <object file>,似乎32位变体没有加入字段,而64位的有。我想这是为了解决非32位系统的地址布局问题,例如x86_64或arm。这是对的吗?

    -1热度

    1回答

    解压缩Linaro GCC 6.2-2016.11工具链占用了将近3.4GB的磁盘空间,我想将其缩小。我的目标是armv7-a + vfpv3 + hard_float所以我已经删除了我不需要的东西(如ld.gold,Thumb,v8-a,v7ve等),但它仍然占用了将近1GB的空间。 所以我想用strip工具从其二进制文件中删除冗余信息。 我的主要问题是如何使用strip在这种情况下安全,正确和

    3热度

    1回答

    此使用.reloc节是我面临AArch64问题的一个简化版本: 我有这个宏,保持一些数据倾倒的部分。 #define GEN_DATA(_type) \ .pushsection .mydata_##_type, "aw"; \ .ifndef start; \ start:; \ .endif; \ .word 1; \ .relo

    4热度

    3回答

    据说linux loader是/ usr/bin/ld,但通常我们使用gcc/g ++来链接库和可执行文件,我们几乎不使用“ld”。 我最后一次用“LD”当我学习linux装配手动为,以生成可执行的唯一方法是LD .o文件生成可执行的情况下直接任意库。 我的问题是,是包含“LD”的一些功能包装GCC/G ++,因为原始的“LD”是太难用?或者我们不应该明确地使用“ld”作为c/C++程序链接,因为

    4热度

    1回答

    我工作的一个嵌入式项目上有几种不同的存储空间自定义链接文件中的ARM MCU: /* Memory Spaces Definitions */ MEMORY { rom (rx) : ORIGIN = 0x00400000, LENGTH = 0x00200000 data_tcm (rw) : ORIGIN = 0x20000000, LENGTH = 0x000080

    2热度

    1回答

    我想弄清楚如何在我的项目中创建库和一般处理多个文件。 但是,ld报告它“找不到-lhello”(其中libhello是我的自定义库)。不过,当我使用-l:libhello.so时,它编译得很好。 我然后跑LD与--verbose选项,这里就是我的了: [...] 试图打开的lib/libhello.dll.a失败 企图开放式的lib/hello.dll.a失败 试图打开的lib/libhello.

    2热度

    1回答

    只是好奇,想知道是什么这样的结构之间的差异(对文本,数据,RODATA,在链接脚本BSS等): .data : { *(.data) } .data : { *(.data*) } .data : { *(.data.*) } 在任何情况下,我们收集数据从所有目标文件节,但魔鬼在细节。 快速测试表明地图文件不同,反过来影响可执行文件的大小。