glib-2.28.6 的编译和安装 以及错误的解决方法
要編譯glib-2.28.6,那么首先要的就是有它的源碼,源碼的下載地址在http://ftp.acc.umu.se/pub/gnome/sources/glib/,要什么版本都有,我這里用的是2.28.6版本(其他版本沒有試,推薦該版本)。
解壓什么的,我就不再啰嗦了。
這里首先在glib-2.28.6根目錄下建立一個文件arm-linux.cache,并寫入以下內容:
glib_cv_long_long_format=ll glib_cv_stack_grows=no glib_cv_working_bcopy=no glib_cv_sane_realloc=yes glib_cv_have_strlcpy=no glib_cv_va_val_copy=yes glib_cv_rtldglobal_broken=no glib_cv_uscore=no ac_cv_func_posix_getpwuid_r=yes ac_cv_func_nonposix_getpwuid_r=no ac_cv_func_posix_getgrgid_r=no glib_cv_use_pid_surrogate=no ac_cv_func_printf_unix98=no ac_cv_func_vsnprintf_c99=no ac_cv_path_GLIB_COMPILE_SCHEMAS=yes然后就可以配置了。我的配置是:./configure --prefix=/wsh_space/my_install/usr/lib --host=arm-cortex_a9-linux-gnueabi --cache-file=arm-linux.cache CC=arm-cortex_a9-linux-gnueabi-gcc
其中--prefix選項可由自己定義,CC的選項選擇自己的arm-linux編譯器,我這里的編譯器是從Android中來的,版本是4.7.4,如果有朋友編譯不過去需要該編譯器,可以留言哈。
現在可以直接編譯了。
make
make install
如果不出意外,那么就會成功了,但是,往往都會出意外。如果不是我這個編譯器,那么編譯時可能出現zconf.h找不到的錯誤(這里是針對比較新的Linux系統,如Ubuntu14.04 64位版本的操作系統,32位的沒試過,可能也有),有說缺少zlib1g-dev,實際上安裝完后或者系統本身已經是最新了,仍然會報這個錯誤,實際上改錯是路徑的問題,新版的操作系統該頭文件被放在了/usr/include/x86_64-linux-gnu,這時只需要拷貝到/usr/include/目錄下即可。
另外還可能會報/usr/bin/ld: cannot find -lz這個錯誤,實際上是缺少libz.*文件,也是zlib1g-dev包里的,可是這里就不能按照上面所示去拷貝了,雖然/usr/lib/x86_64-linux-gnu目錄下有該文件,但是拷貝到/usr/lib/目錄下編譯時會報錯C compiler cannot create executables,也就是格式不正確,我們要的是arm平臺的,而這個是x86平臺當然不合適了,所以不可用,這時的辦法是從我上面的編譯器中拷貝過去,或者去找arm版本的。
這個問題解決后編譯就沒問題了。
最后說明,我的Linux系統為Ubuntu14.04 64位版本。
用我上面說的編譯器,更加方便,不會報上面說的兩個錯誤,看來我從Android中拿來的arm-cortex_a9-linux-gnueabi-gcc編譯器還挺完整的。有時間打包上來給大家共享。
總結
以上是生活随笔為你收集整理的glib-2.28.6 的编译和安装 以及错误的解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于SDIO接口的wifi和通用SD卡的
- 下一篇: Dbus的编译和安装