与库交叉编译

时间:2017-02-17 12:34:59

标签: linux windows cross-compiling intel-fpga soc

我正在使用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工具在我的Windows 7机器上使用ARM编译器编译库源代码? 我相信使用Altera提供的编译器终端来运行./configure,make

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

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

我遇到的最常见错误是:

cannot find -lcurl

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

1 个答案:

答案 0 :(得分:0)

最后,我做了以下事情:

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

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

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