QtCreator中的Sysroot的含义及坑
生活随笔
收集整理的這篇文章主要介紹了
QtCreator中的Sysroot的含义及坑
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
??軟件編譯過程中用到指定路徑的頭文件、鏈接指定路徑的庫,軟件運行過程中需要在該指定路徑下尋找相應資源。如gcc指定在/usr/include目錄查找頭文件,binutils中提供的ld命令從/lib、/usr/lib、LD_LIBRARY_PATH、/etc/ld.so.conf等指定路徑進行共享庫和靜態庫連接。交叉編譯時需要在本地系統進行編譯,而編譯出的軟件在目標系統運行,這就存在編譯時指定的路徑和運行時的路徑不一致的矛盾。DESTDIR和sysroot配合用于解決這個問題。也就是說如果配置了SysRoot,則程序就會從Sysroot中設置的目錄中搜尋庫,頭文件,如下:
?-lpthread -lz -lcrypto -lssl -lm -ltinyalsa -lstdc++
這樣鏈接庫時,如果設置了SysRoot目錄,則去SysRoot目錄搜尋pthread、rypto、 ssl 、m 、tinyalsa 、stdc++庫,而不是去默認的/usr/lib, /lib、/usr/lib、LD_LIBRARY_PATH、/etc/ld.so.conf等指定路徑進行共享庫和靜態庫連接。但是要使Sysroot的設置起作用,必須將下圖的Shadow build 取消,否則不起作用,從而報這些庫找不到的錯誤
總結
以上是生活随笔為你收集整理的QtCreator中的Sysroot的含义及坑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3dmax怎么制作超酷的机器蜘蛛
- 下一篇: buildroot介绍