- Mastering Embedded Linux Programming
- Chris Simmonds
- 235字
- 2021-07-30 09:45:00
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.
- C++面向對象程序設計(第三版)
- Mastering Visual Studio 2017
- 在最好的年紀學Python:小學生趣味編程
- Android和PHP開發最佳實踐(第2版)
- Visual FoxPro程序設計教程(第3版)
- 算法基礎:打開程序設計之門
- INSTANT CakePHP Starter
- 大話Java:程序設計從入門到精通
- 從Excel到Python數據分析:Pandas、xlwings、openpyxl、Matplotlib的交互與應用
- Mudbox 2013 Cookbook
- 數據結構:Python語言描述
- Clojure for Finance
- Android項目實戰:博學谷
- Scratch少兒編程高手的7個好習慣
- 打造流暢的Android App