Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
为什么 GCC --gc-sections 和 -ffunction-sections 不起作用? (cmake构建)
我想知道为什么 GCC 编译器标志 ffunction sections和链接器标志 gc sections不要消除不必要的回复 我的最终可执行文件中未引用的符号 函数代码 为什么它没有按 GCC 文档中的预期和描述工作 也许我无意中发现了
c
gcc
CMake
ld
如何使用汇编制作小型二进制文件?
我正在为我的一些项目编写一些汇编代码 我看到了一些有趣的东西 链接时二进制文件的大小非常大 所以我测试了又测试 即使使用尽可能少的代码行 输出的 Elf 二进制文件也很大 例如 section text global start start
Assembly
Linker
ld
ELF
binutils
GCC 链接器脚本 - 将 .bss 部分分割到多个 RAM 区域
嵌入式设备有两个 SRAM 区域 首先位于 0x20000000 长度为 16k 然后在 0x20040000 处长度为 96k 在应用程序中 生成的 bss 部分大小为 102k 因此它不完全适合任一 RAM 区域 它需要在两个区域之间划
gcc
Linker
Embedded
ld
linkerscripts
OS X 中的 GNU 链接器等效命令
我正在阅读下面的书 http www cs bham ac uk exr lectures opsys 10 11 lectures os dev pdf关于操作系统 在第 43 页中 他们使用以下命令将带注释的机器代码转换为原始机器代码文
MacOS
Linker
ld
Arm GCC 链接器:如何将数据放在 (rw) 非易失性存储器中的绝对地址处
我面临以下问题 我正在对 ARM cortex M4 微控制器进行编程 我希望它具有 IP 地址 网络掩码 网关等的默认值 该默认值应该可以通过串行通信进行更改 并且更改应该是持久的 例如 IP 地址和网络掩码的默认值为 192 168 1
c
gcc
arm
ld
flashmemory
/usr/bin/x86_64-linux-gnu-ld:找不到?
我在ubuntu 18 04 gcc 7 3 学习C语言 当 的时候make all输入命令 出现这个错误 usr bin x86 64 linux gnu ld 找不到 lkeccak The Makefile如下 CC gcc CFLA
c
Ubuntu
makefile
ld
gcc / ld:静态链接 ELF 二进制文件中的重叠部分(.tbss、.init_array)
我正在 x86 64 机器上的 Debian 7 系统上使用 gcc 版本 4 8 2 Debian 4 8 2 21 静态编译一个非常简单的 hello world 单行代码 gcc test c static o test 我得到一个可
gcc
ld
staticlinking
ELF
threadlocalstorage
为什么 ld 在输出文件中包含链接命令文件中未指定的部分?
我正在努力了解如何使 ld 在 gcc arm 嵌入式工具包中 执行我想要的操作 举个例子 我有几个想要链接的 o 文件 说我only希望输出中有一个名为 foo 的部分 我把它放在命令文件 link ld 中 SECTIONS foo t
gcc
Linker
arm
ld
如何使用 GCC 和 ld 删除未使用的 C/C++ 符号?
我需要严格优化可执行文件的大小 ARM发展 和 我注意到在我当前的构建方案中 gcc ld 未使用的符号不会被删除 的用法arm strip strip unneeded对于生成的可执行文件 库不会改变可执行文件的输出大小 我不知道为什么
c
gcc
ld
strip
该程序无法找到正确版本的 glibc/libstdc++,尽管它是静态链接的
我正在尝试将我的程序与 glibc 静态链接 因为目标计算机上的 glibc 版本几乎不可预测 我使用了链接器标志 static libgcc 和 static libstdc 并且工作正常 可执行文件很大 但我可以忍受 不幸的是 当我在目
gcc
g
ld
glibc
libstdc
链接描述文件中的 KEEP 是什么意思?
The LD手册 http ftp gnu org old gnu Manuals ld 2 9 1 html mono ld html SEC2没有解释什么KEEP命令执行 下面是第三方链接描述文件的一个片段 其特点是KEEP 什么是KE
Linker
ld
linkerscripts
直接使用 ld 链接 C 程序失败,未定义对“__libc_csu_fini”的引用
我正在尝试在Linux下编译C程序 然而 出于好奇 我尝试手动执行一些步骤 我使用 gcc 前端生成汇编代码 然后运行GNU汇编器来获取目标文件 然后将其与 C 运行时链接以获得可工作的可执行文件 现在我被链接部分困住了 该程序是一个非常基
c
gcc
Linker
glibc
ld
防止GCC LTO删除函数
我使用 GCC ARM Embedded 和 FreeRTOS FreeRTOS具有的功能vTaskSwitchContext 仅在某些情况下使用 内联汇编代码 问题是 当我使用LTO时 GCC不考虑内联汇编代码并认为该函数没有被使用 因此
c
gcc
ld
freeRTOS
lto
与另一个启动文件链接
我正在尝试使用以下命令将程序与我自己的启动文件链接STARTUPLD 脚本中的指令 ENTRY start STARTUP my crt1 o GCC驱动程序用于链接程序 不关心像libgcc等库路径 gcc T my script ld
c
gcc
Linker
ld
linkerscripts
MinGW/Eclipse ld.exe 找不到库
我正在使用 Eclipse CDT 尝试使用 Ogre 3D 引擎编译项目 但不知何故 mingw 无法找到我链接的静态库 这些是错误消息 c mingw bin lib gcc mingw32 4 6 1 mingw32 bin ld e
c
eclipse
MinGW
eclipsecdt
ld
为什么 GNU ld 在链接可执行文件和共享对象时解析符号的方式不同?
我有一段简单的 C 代码 看起来像这样 include
c
gcc
Linker
ld
binutils
为什么链接描述文件有多个节命令?
我一直在读ld 的部分文档 https access redhat com documentation en US Red Hat Enterprise Linux 4 html Using ld the GNU Linker sectio
Embedded
ld
如何将程序加载到内存中与预期地址不同的地址?
通常 用户程序二进制文件将加载到低地址 通常约为0x400000 在程序地址空间中 该空间将在elf二进制 对于 Linux 我们能否强制用户二进制文件加载到高地址 可能在2GB地址范围 其中libc或加载其他此类库 我尝试在网上寻找解决方
c
Linux
compilerconstruction
Linker
ld
配置文件与 gcc/g++ 和 ld 的链接时间
我正在使用 g 编译和链接一个由大约 15 个 c 源文件和 4 个共享对象文件组成的项目 最近 链接时间增加了一倍多 但我没有可用的 makefile 的历史记录 有没有办法分析 g 以查看链接的哪一部分花费了很长时间 Edit 当我注意
gcc
profiling
g
Linker
ld
/usr/bin/ld:错误:找不到-lboost_unit_test_framework
这个标题提出了很多问题 但我发现没有适合我的答案 我有以下代码 define BOOST TEST DYN LINK define BOOST TEST MODULE Hello include
c
boost
ld
«
1
2
3
4
5
6
7
»