0

我正在使用 Eclipse DS-5 在 Windows 7 上为 Altera SoC (FPGA+ARM) 交叉编译项目。该工具链由 Altera 工具提供,如下所示:

GCC C++ Compiler 4 [arm-linux-gnueabihf]
GCC C Compiler 4 [arm-linux-gnueabihf]
GCC Assembler 4 [arm-linux-gnueabihf]
GCC C Linker 4 [arm-linux-gnueabihf]
GCC C++ Linker 4 [arm-linux-gnueabihf]
GCC Archiver 4 [arm-linux-gnueabihf]

Altera SoC 板在 ARM 上运行 Angstrom Linux 发行版。

我需要添加一些库(例如 libcURL)并设置 Eclipse 项目设置,以将库包含在编译中。

我的理解:库通常包含 2 个组件。头文件和库定义文件(二进制格式)。编译器需要头文件,然后链接器链接库文件。

(以上如有错误请指正)。

我的问题:

1) 如果没有为 ARM 处理器提供二进制文件,我是否需要使用 Altera 工具在我的带有 ARM 编译器的 Windows 7 机器上编译库源代码?我相信使用 Altera 提供的编译器终端来运行 ./configure, make

2)对于像libcURL这样广泛使用的库,有针对不同平台的预编译二进制文件。我怎么知道编译后的库是什么样子的?Eclipse编译整个项目需要哪些文件(请具体说明:*.lib, *.a, *.h, ...)

摘要:我对交叉编译感到困惑,我不确定,需要哪个编译器,需要哪些库文件。

我遇到的最常见的错误是:

cannot find -lcurl

这是否意味着编译器可以看到 *.h 文件,但链接器无法找到二进制文件?

4

1 回答 1

0

最后,我做了以下事情:

我已将库源文件复制到我的目标平台(Altera De_nano_SoC ARM)并在那里编译库(Angstrom Linux,编译器 arm-angstrom-linux-gnueabi)。这需要在库文件夹中设置配置文件,并运行makemake install命令。

编译后,我将输出文件(头文件 *.h 和静态库文件 *.a 或共享库文件 *.so - 取决于编译配置)复制到我的主机(Windows 7)。然后我将这些文件添加到我的 Eclipse DS-5 项目中。

Eclipse 需要带有头文件 *.h 的 .../include 文件夹的路径和包括 *.a 或 *.so 文件的 .../lib 文件夹。

于 2017-02-22T07:08:49.477 回答