官术网_书友最值得收藏!

Problems with cross compiling

Sqlite3 is a well-behaved package and cross compiles nicely but not all packages are so tame. Typical pain points include:

  • Home-grown build systems, zlib, for example, has a configure script but it does not behave like the Autotools configure described in the previous section
  • Configure scripts that read pkg-config information, headers, and other files from the host, disregarding the --host override
  • Scripts that insist on trying to run cross compiled code

Each case requires careful analysis of the error and additional parameters to the configure script to provide the correct information or patches to the code to avoid the problem altogether. Bear in mind that one package may have many dependencies, especially with programs that have a graphical interface using GTK or QT or handle multimedia content. As an example, mplayer, which is a popular tool for playing multimedia content, has dependencies on over 100 libraries. It would take weeks of effort to build them all.

Therefore, I would not recommend manually cross compiling components for the target in this way except when there is no alternative, or the number of packages to build is small. A much better approach is to use a build tool such as Buildroot or the Yocto Project, or, avoid the problem altogether by setting up a native build environment for your target architecture. Now you can see why distributions like Debian are always compiled natively.

主站蜘蛛池模板: 平山县| 洛阳市| 渝中区| 渭源县| 新蔡县| 和平区| 贺兰县| 会昌县| 万全县| 淮滨县| 陈巴尔虎旗| 镇赉县| 东乌珠穆沁旗| 嘉善县| 长春市| 绍兴县| 于都县| 泸定县| 延庆县| 中卫市| 永兴县| 永胜县| 开江县| 北碚区| 开化县| 福州市| 婺源县| 南平市| 射阳县| 油尖旺区| 崇文区| 东港市| 孟连| 饶阳县| 武乡县| 肇州县| 江油市| 兴安县| 池州市| 云阳县| 化德县|