问题标签 [gnu-toolchain]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
618 浏览

linux - 找不到工具链二进制文件

尝试为我的 mini2440 ARM 板构建最新版本的 u-boot 引导加载程序,我设法从 codesourcery 下载了一个工具链包并将其解压缩到以下路径:/usr/local/arm-2008q3/

我还为当前会话导出了以下值:

当我运行 make 时,我得到以下输出,但我不知道为什么:

我仔细检查了所有内容,二进制文件确实位于上述文件夹中,但是...请解释我错在哪里。

0 投票
1 回答
70 浏览

configure - 在编译时包括#foo 预处理器指令(GNU 工具)

我目前遇到了这样的问题,实际上是由包维护者引起的,他们根本不认为某个预处理器定义在依赖项中所需的某个工具包包的版本 X 之前不可用(目前是在测试阶段)。它可以通过简单地#define在基本系统的头文件中添加一个附加项来修复,使项目再次编译正常。
但是,如果我没有系统的 root 访问权限怎么办?我还可以#define new_macro "i am from the future"在编译时添加一个,例如到configure吗?
在阅读此事时,我认为它可能与DEFS环境变量一起使用,但显然这并不意味着用于 C 预处理器指令。
那么这完全可以实现吗?

0 投票
1 回答
1656 浏览

c - ARM Cortex M3 的 GNU-C 工具链 setup.c 问题

我正在使用基于 ARM M3 的 MCU CC2538。我使用 Code Composer Studio v6 作为 IDE。当我选择 GNU v4.7.4 (Linaro) 作为编译器时,我收到一条警告消息“所选设备当前未向 GNU 工具链提供项目初始化详细信息”。我认为这是由于setup.c(?)将在稍后添加。

编译器具有以下标志

和链接器标志:-mthumb -g -gstrict-dwarf -Wall -Wl,-Map,"cc2328em_test.map"

我使用 TI http://www.ti.com/lit/zip/swra443提供的源文件

我将 main.c、setup.c、setup_gcc.c 和 cc2538_512.cmd 添加到一个空项目中,然后编译它。这是编译输出:

这是第一个错误“ ./startup_gcc.o:(.flashcca+0x0): multiple definition of `__cca'

源代码有错误吗?我是否使用了错误的工具链(我从 TI 的 APP 中心下载了带有 GCC 徽标的“ARM GCC”的 GNU 工具链。还是我错过了任何配置?


以下是 TI 提供的源文件:

主程序


安装程序.c


启动_gcc.c


cc2538_512_gcc.cmd


这是一个打印屏幕,在左侧菜单中显示配置和相关文件 在此处输入图像描述

0 投票
1 回答
253 浏览

c - 无法在 CentOS/redhat 上编译 tcprstat。需要有关 GNU Toolkit/bzr 的建议

我下载了代码(“bzr branch lp:tcprstat”来获取代码 - 总共 1.5 MB),但我无法编译它。出现在 tcprstat 目录中的文件如下。我非常熟悉传统的 ./configure、make、sudo make install 和合理的 IT 知识。

问题的解决(根据 Mehmet 的意见)。

从这个页面, http: //xcb.freedesktop.org/dist/,我得到了这个文件:

libpthread-stubs-0.3.tar.gz (14-Oct-2009 02:16 267K)

该程序仍然无法编译并出现相同的错误,但进一步谷歌搜索(“centos pthread 缺失”)给了我这个页面 https://www.centos.org/forums/viewtopic.php?t=3517 其中包含圣人建议

(我用 sudo 做的)

等等瞧。

感谢(并祝贺 :-) )收集 50 个奖励积分的 Mehmet。

ps Mehmet,你对 Linux 中的静态/动态链接有什么好的指南吗?

【问题的完整解释】

我对此并不懒惰(在我们说话的时候正在下载书),并且我尝试了许多 automake、autoconf、make、aclocal、bootstrap 的变体,我被难住了。是的,我已经阅读了自述文件,但作者似乎认为每个人都知道 GNU 工具链。我已经在帖子底部给出了迄今为止我最成功的努力的细节。

如果有人能告诉我如何编译这个程序,我将不胜感激。

========= 初始文件列表 ==============

============= 尽力而为===============

运行 ./bootstrap

==== 运行 ./bootstrap 后的新文件列表

然后我运行 ./configure - 似乎工作正常 - 没有错误。

然后我尝试运行 make 但它失败了 - 显示错误。

0 投票
1 回答
137 浏览

c - 工具链与对齐的差异(为什么这甚至有效)

有一个 ATMEL 库不适用于我的工具链(用于 ARM 的 GNU 工具),我知道为什么,但我不知道为什么它适用于旧的 YAGARTO,我想这也适用于 KEIL 和 IAR

我正在使用不支持对整数(4 字节)的非对齐访问的 ARMV5 处理器(AT91SAM9)。

有一个全局缓冲区定义为:

缓冲区获取一些数据,然后将数据写入闪存,但数据必须一次写入 4 个字节,因此有一个名为 pAlignedSource 的 int 指针可以一次读取 4 个字节的数据。

但是 pPAgeBuffer 不一定是 4 字节对齐的,因为它是一个 char 数组,并且 pAlignedSource 并不指向对齐的地址。这段代码怎么可能总是在另一个工具链中工作,但不在我的工具链中?,我已经为编译器定义了正确的 CPU,除了两个编译器都获得相同的代码标志。

我的问题是当数据从缓冲区复制到闪存时

我以数据的加扰版本结束:/,但是我通过将缓冲区定义为来解决这个问题

它成功了,但我仍然对此很好奇。为什么它在其他工具链中起作用?

0 投票
0 回答
4693 浏览

c - 致命错误:features.h:ubuntu 14.10 上没有这样的文件或目录

这似乎是一个老问题,解决方法是安装 32 位 C 库和 gcc 多库。我已经完成了在线不同帖子中建议的所有内容,但我仍然遇到问题。我运行 64 位 14.10 aka Utopic,我正在尝试使用 arm 工具链。我的目标是验证我是否可以编译像 hello.c 这样的简单程序,然后继续使用该库的更复杂的程序。这是我收到的错误消息:

我已经尝试了我在网上找到的所有潜在解决方案。比如安装libc6-dev-amd64、gcc-multilib、libc6-dev-i386。我也尝试过重新安装其中一些,并使用 aptitude。但我仍然得到这个错误。请问我该如何解决?

0 投票
1 回答
4934 浏览

gcc - 确定编译后的 ELF 对象是 32 位还是 64 位

我想验证一个对象是用 32 位还是 64 位编译的:

既然显示的是ELF32,这是否保证对象是32位模式呢?

0 投票
2 回答
758 浏览

c++ - 面向 C/C++ 开发人员的 Eclipse IDE 包括

我正在努力在一个项目中包含一个文件。我不知道为什么eclipse找不到头文件。该文件名为boards.h,位于名为bsp 的文件夹中,一切正常

在此处输入图像描述

在此处输入图像描述

0 投票
2 回答
9257 浏览

c - Eclipse CDT 中对函数的未定义引用

在我的main.c程序中,我包含了这个库:

这也包含在 Properties -> C/C++ Build -> Settings -> Cross ARM GNU Assembler -> Includes

Properties -> C/C++ Build -> Settings -> Cross ARM C Compiler -> Includes

构建项目时出现此错误:

我在另一篇文章中读到我必须链接库(http://whatwouldnickdo.com/wordpress/328/eclipse-cdt-and-linux-libraries/

我尝试添加具有名称的库,coap_api但我不工作

在编译中包含 coap 目录:

0 投票
3 回答
330 浏览

c - 嵌入式,是否可以使用 AVR/8051 编译器编译 PIC 控制器

如何在不同的微控制器系列 IDE/编译器上编译不同的微控制器。

例如,我有 8051 keil uVision IDE。我需要为 PIC 或 AVR 控制器编译代码。是否可以通过更改 IDE 中的任何内部设置?或者通过添加控制器特定的头文件等?

我在这里需要的实际答案是,

在 keil 或 AVR Studio 或 PIC 等设备列表中选择特定的“微控制器”后,IDE/编译器将添加到代码中吗?