我正在使用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文件,但链接器无法找到二进制文件?
答案 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文件夹的路径。