QtCreator中的Sysroot的含義及坑

2021-10-10 19:12:03 字數 738 閱讀 5836

軟體編譯過程中用到指定路徑的標頭檔案、鏈結指定路徑的庫,軟體執行過程中需要在該指定路徑下尋找相應資源。如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中的快捷鍵

qtcreator中的快捷鍵 f1 檢視幫助 f2 跳轉到函式定義 和ctrl 滑鼠左鍵一樣的效果 shift f2 宣告和定義之間切換 f4 標頭檔案和原始檔之間切換 ctrl 1 歡迎模式 ctrl 2 編輯模式 ctrl 3 除錯模式 ctrl 4 專案設定模式 ctrl 5 幫助模式 ctr...

cmake 在qtcreator 編譯中遇到的問題

在編譯乙個關於opencv的程式時,在命令視窗可以編譯成功,但是在qtcreator下 一樣的cmake檔案 但是會出現 usr local lib libopencv nonfree.so.2.4 error adding symbols dso missing from command line...

QT Creator 中C 呼叫python程式

在專案的.pro檔案中加入pyhon的標頭檔案路徑和庫路徑 includepath c python python36 include libs lc python python36 libs lpython36 當然路徑要換成自己的路徑 其中libs lc python python36 libs...