问题标签 [codesourcery]

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 回答
3931 浏览

linux - 冲突的架构配置文件 A/M 错误使用 arm-none-linux-gnueabi-gcc

对不起,我的英语不好。我的 PC 上有一个 Ubuntu,我用它来编程我的STM32L-DISCOVERY好吧,程序成功编译,但是在链接应用程序时出现错误。我是开发此类设备的新手。所以,我使用 Eclipse 作为 IDE 和 Code Sourcery 工具。我使用命令arm-none-linux-gnueabi-gcc编译程序以使用该标志进行编译:

我正在使用相同的命令与该标志链接

好吧,在使用最后一个命令执行后,它给了我这样的错误:

错误:/usr/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin/../arm-none-linux-gnueabi/libc/thumb2/lib/ld-linux.so.3:冲突的架构配置文件A/M stm32ld_template C/C++ 问题错误:/ usr/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin/../arm-none-linux-gnueabi/libc/thumb2/lib/libc.so.6:冲突的架构配置文件A/M stm32ld_template C/C++ 问题错误:/usr/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux /bin/../arm-none-linux-gnueabi/libc/thumb2/lib/libgcc_s.so.1:架构配置文件冲突 A/M stm32ld_template C/C++ 问题

当我在链接命令中删除标志-mthumb时,没有错误。但是,当我尝试调试程序时,它会以Function main not defined. 我也使用st-util进行调试,当我尝试调试时,它会显示:

我的main.c

我做错了什么?我感谢任何帮助我的人。

编辑1:

我已将 -nodefaultlibs 添加到链接命令中,因此它现在可以很好地链接。但调试仍然无法正常工作。

0 投票
2 回答
2202 浏览

cross-compiling - 交叉编译 sh 脚本到 bin for enigma2 (mips) OpenEmbedded

我有一个使用 Enigma2 OpenEmbedded 运行的 Dreambox 卫星接收器。所以MIPS架构。我想在我的 Ubuntu PC 上将 .sh 文件交叉编译为 Enigma2 二进制文件。

我在我的 Ubuntu PC 上为 mips32 架构安装了 codesourcery 交叉编译工具链。

工具链信息:

我使用 SHC 将 .sh 文件转换为 .c 文件 然后我使用以下命令将该 c 文件交叉编译为 mips 二进制文件:

没有看到错误(我很高兴,但不幸的是(见下文))。然后将bin文件复制到我的enigma2盒子并尝试执行它......

当我在 MIPS 盒子上运行输出二进制文件时,我看到了:

所以很明显我在交叉编译命令中忘记了一些东西,但是什么?

0 投票
1 回答
833 浏览

c - CodeSourcery linker errors to static library

I have created two static libraries for use with a C program I am writing for an ARM STM32F4xx processor using Mentor Graphics CodeSourcery. I have added the libraries and their directories to the build settings in the project as I believe they are supposed to be (Under properties, C/C++ Build->Settings->Tool Settings->Sourcery CodeBench C Linker->Libraries) but when I compile and link the project, I get undefined reference errors to functions in one of the libraries. I have tried changing the order of the libraries relative to each other. I have include a snippet below of the compiler log edited to clean up the long path names.

I am at a complete loss here so any help is appreciated.

0 投票
0 回答
736 浏览

mips - MIPS GCC 编译错误的 MIPS 版本?

我正在寻找进入路由器黑客领域。目前,我只是想在我的路由器 F7D7302 v1 上运行一个简单的 hello world,运行 dd-wrt。cpuinfo 显示 BCM4716 和“MIPS 74K V4.0”作为 cpu '模型'。

我下载了 CodeSourcery 的 MIPS 交叉编译器。从那时起获得编译的可执行文件非常简单。我传输了文件,chmod +x'd 文件,但它没有运行。

我决定做大量的窥探并在路由器的busybox可执行文件上运行“文件”:

并在我的 hello world 上运行“文件”:

使用静态库在路由器上运行测试导致 100% CPU 挂起;使用动态库运行会导致“未找到”错误。设置了所有适当的权限。

有人知道我在做什么错吗?

0 投票
2 回答
6068 浏览

cross-compiling - 交叉编译犰狳线性代数库

我喜欢使用犰狳线性代数库。当将 octave .m 文件移植到 C++ 时,它变得非常好,尤其是当您必须使用 eigen 方法时。

然而,当我不得不从我的原生 vanilla G++ 中取出我的程序并将其转储到我的 ARM 处理器时,我遇到了问题。因为我花了几个小时弄糊涂了,虽然我想分享,所以其他人可能会避免一些挫败感。

如果其他人可以添加任何其他内容,我会喜欢的。这是我用来解决这个问题的过程,当然不是唯一或最好的方法。

0 投票
3 回答
16979 浏览

arm - 什么时候使用 .ARM.exidx

我正在使用 mbxxx 目标开发 Contiki 2.7。在构建我的代码时,链接器抱怨.ARM.exidx 和 .data 部分重叠。在修改了链接器脚本 contiki-2.7/cpu/stm32w108/gnu-stm32w108.ld 后,我通过替换解决了这个问题:

和:

后来,当我尝试使用 objdump -h 查看其他一些示例应用程序的标题列表时,我没有找到这个特定的 .ARM.exidx 部分,而它存在于我的应用程序中。谷歌搜索 .ARM.exidx 让我发现它用于一些 c++ 异常处理。既然我的代码是纯 C 代码,为什么这部分会出现在我的代码中?.ARM.exidx 通常何时出现在代码中,它的用途是什么?

==================================================== =================================

不,我没有任何这样的编译器选项。我实际上正在使用 AxTLS api 并撕下证书处理代码并将其移植到 contiki。在进一步的挖掘中,我发现了 bigint 实现中的可疑行为。简而言之……这是 bigint.c 文件中的函数主体:

如果注释掉的部分(r 变量赋值)未注释,则 .ARM.exidx 会出现,否则不会出现!现在可以解释了吗???

==================================================== =================================

我没有发现在alloc(). 在代码的某个单独区域中使用了2 个引用alloca(),我将其替换为malloc()and free(),但这也没有解决问题。alloc()实现只调用malloc(),realloc()free()

0 投票
2 回答
1231 浏览

gcc - 使用 CodeSourcery 工具链交叉编译 PCRE?

我正在尝试编译 这里是我的配置PCRE脚本CodeSourcery

现在它已成功编译,但是当我尝试在 android 上执行该二进制文件时,我得到:

交叉编译 curl,openssl 时也有类似的问题,但是当我运行测试代码时

并使用以下选项编译

有用

0 投票
2 回答
723 浏览

android - 静态链接的二进制文件需要共享库 libnss

我使用 linaro 和 codesourcery 工具链为 android 进行交叉编译,我发现即使在-static这里提供问题似乎来自 glibc 动态链接libnss_* libraries

这是我的代码

运行以下命令

在跟踪它之后得到以下输出

11455 uname(0xf6ffeb70) = 0 11455 brk(NULL) = 0x0006d000 11455 brk(0x0006dd00) = 0x0006dd00 11455 brk(0x0008ed00) = 0x0008ed00 11455 brk(0x0008f000) = 0x0008f000 11455 socket(1,526337,0,0,445504,319244) = 3 11455 connect(3,0xf6ffea30,110) = -1 errno=2 (No such file or directory) 11455 close(3) = 0 11455 socket(1,526337,0,1,445504,0) = 3 11455 connect(3,0xf6ffeb50,110) = -1 errno=2 (No such file or directory) 11455 close(3) = 0 11455 open("/etc/nsswitch.conf",O_RDONLY|O_CLOEXEC) = 3 11455 fcntl64(3,F_GETFD) = 1 11455 fstat64(3,0xf6ffeb78) = 0 11455 mmap2(NULL,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS,-1,0) = 0xf67fe000 11455 read(3,0xf67fe000,4096) = 513 11455 read(3,0xf67fe000,4096) = 0 11455 close(3) = 0 11455 munmap(0xf67fe000,4096) = 0 11455 open("/etc/ld.so.cache",O_RDONLY|O_CLOEXEC) = 3 11455 fstat64(3,0xf6ffe450) = 0 11455 mmap2(NULL,88624,PROT_READ,MAP_PRIVATE,3,0) = 0xf67e9000 11455 close(3) = 0 11455 access("/etc/ld.so.nohwcap",F_OK) = -1 errno=2 (No such file or directory) 11455 open("/lib/arm-linux-gnueabihf/libnss_compat.so.2",O_RDONLY|O_CLOEXEC) = -1 errno=2 (No such file or directory) 11455 stat64("/lib/arm-linux-gnueabihf",0xf6ffe488) = -1 errno=2 (No such file or directory) 11455 open("/usr/lib/arm-linux-gnueabihf/libnss_compat.so.2",O_RDONLY|O_CLOEXEC) = -1 errno=2 (No such file or directory) 11455 stat64("/usr/lib/arm-linux-gnueabihf",0xf6ffe488) = -1 errno=2 (No such file or directory) 11455 open("/lib/libnss_compat.so.2",O_RDONLY|O_CLOEXEC) = -1 errno=2 (No such file or directory) 11455 stat64("/lib",0xf6ffe488) = 0 11455 open("/usr/lib/libnss_compat.so.2",O_RDONLY|O_CLOEXEC) = -1 errno=2 (No such file or directory) 11455 stat64("/usr/lib",0xf6ffe488) = 0 11455 munmap(0xf67e9000,88624) = 0 11455 exit_group(0) 我怎样才能静态链接所有动态所需的库,还是需要交叉编译 glibc?

好吧,我不赞成使用 NDK,因为我试图以某种方式交叉编译 nginx,但在访问 localhost:8080 时,nginx 没有响应

0 投票
1 回答
304 浏览

c - 制作文件有问题

我有一些问题double!通过终端有一些查询,我应该给出一些数字(例如每小时延迟多少)。如果我通过终端给出一个数字,例如 1.1 h,那么它会打印大约 -1173000!它应该只打印 1.1。

Makefile我认为,也许来自 FreeRTOS的有一些问题。(因为它不能通过 FreeRTOS 编译到 STM32F407 处理器!)

我相信这条线上的某些东西应该被修复!

这是完整的代码Makefile

0 投票
1 回答
1191 浏览

makefile - rtl8192cu 驱动的交叉编译失败

我正在尝试在我的 Linux x86 机器中为 ARM 机器交叉编译rtl8192cu 驱动程序。我从Realtek 网站下载了驱动程序。编译指南是指编辑 Makefile 如下:

  1. 确保 $PATH 变量包含您将用于交叉编译模块的工具链的位置。有关此目录的位置,请参阅设置说明。

  2. 将 KSRC 环境变量设置为 Beagleboard 内核源的位置(请参阅此目录路径的交叉编译环境设置说明)。

  3. 将 KVER 环境变量设置为 beagleboard 的内核版本。

为此,我编辑了:

KVER := 2.6.32(2.6.32.是BB的内核版本)

KSRC ?= /home/demetres/linux-2.6.32.61(编译的内核源代码,取自 BB,存储在home/demetres/linux-2.6.32.61本地)

我的问题是:

我必须在 Makefile 的字段上编辑CROSS_COMPILE:什么?我编辑了路径/home/demetres/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin,但因 make以下错误而失败:

信息: x86 机器上的跨工具链来自 CodeSourcery。arm-none-linux-gnueabi-gcc helloworld.c –o helloworld我通过在CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin位置运行 , 为 BB 交叉编译了一个 helloworld.c