0

我有一个 C 项目,其中一些函数也是用 arm neon 程序集编写的,但是我无法编译它,main() 所在的文件中有几个错误,而且看起来很模糊,我使用的是 DS-5用于编译,它在没有 asm 函数的情况下在 MSVC 上构建和运行良好。问题是什么?

/* TestApp.c file */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){ 
FILE    *inFile = NULL;
FILE    *outFile = NULL;
...
malloc();
...
printf("malloc failed");
...
memcpy();
....
...
}

Error form ARMCC 4.5.2
Warning: L6412W: Disabling merging for TestApp.o(.conststring), unsupported relocation R_ARM_REL32 from TestApp.o(i.main)
Error: L6769E: Relocation #REL:41 in printf.o(.text) with respect to __stdout. No GOTSLOTexists for symbol.
Error: L6769E: Relocation #REL:6 in fopen.o(.text) with respect to __stdin. No GOTSLOTexists for symbol.
Error: L6769E: Relocation #REL:2 in _printf_char_file.o(.text) with respect to fputc. No GOTSLOTexists for symbol.
Error: L6769E: Relocation #REL:22 in initio.o(.text) with respect to __stdin. No GOTSLOTexists for symbol.
Error: L6769E: Relocation #REL:23 in initio.o(.text) with respect to __stdout. No GOTSLOTexists for symbol.
Error: L6769E: Relocation #REL:24 in initio.o(.text) with respect to __stderr. No GOTSLOTexists for symbol.
Error: L6769E: Relocation #REL:25 in initio.o(.text) with respect to __stdin. No GOTSLOTexists for symbol.

. . .

4

1 回答 1

0

该问题缺少有关您如何尝试构建程序的信息。您似乎在编译动态库时尝试静态链接 stdlib。

在构建动态库时,链接动态库,而不是静态库。如果您不想创建动态库,那么您的问题很可能出在未包含的 makefile 中。

于 2015-11-24T08:30:03.083 回答