QtCreator調試運行工程報錯,無法找到相關庫的的解決方案

最新在使用國產化平臺做qt應用開發時,總是遇到qtcreator內調試運行
找不到動態庫的問題,為什么會出現這種問題呢?明明編譯的時候能夠正常通過,運行或者調試的時候找不到相關的庫呢?先說結論,排除庫本身的問題,歸根結底,可能是我們的pro文件中,關于庫鏈接的方式,不能夠被qmake正常解析,或者使我們鏈接方式不規范,導致我們的庫依賴路徑無法正常添加到運行環境中(qtcreator 相關配置,正常情況下會把解析的依賴環境自動加入運行環境中),進而導致在點擊運行或者調試時無法找到相關庫。
比如說,我們可能為了方便添加相同前綴的庫文件,使用以下方式鏈接

LIBS += -lopencv_*.so

這種方式在某些情況下是能夠正常編譯的,但是如果該類型庫文件具有前后依賴關系,系統可能就報找不到XXXX庫。

其次,發現以下方式也肯能導致庫依賴路徑無法被加入運行環境

LIBS += /home/icpc/my/my.so

因此,自己總結了一下鏈接庫的方式,以opencv為例子,其庫包目錄如下

在這里插入圖片描述
include是包含目錄,lib是庫目錄。
在該庫包根目錄下,新建一個xxxx.pri文件,內容如下

#opencv 4.5.3 install path
OPENCV_INSTALL_PATH =  $$PWD/../opencv4.5.3#opencv 4.5.3 lib path
OPENCV_LIBS_PATH = $$OPENCV_INSTALL_PATH/lib#opencv 4.5.3 include path
OPENCV_INCLUDE_PATH = $$OPENCV_INSTALL_PATH/includeLIBS += -L$$OPENCV_LIBS_PATH -lopencv_aruco \-lopencv_barcode \-lopencv_bgsegm \-lopencv_bioinspired \-lopencv_ccalib \-lopencv_dnn_objdetect \-lopencv_dnn_superres \-lopencv_dpm \-lopencv_face \-lopencv_freetype \-lopencv_fuzzy \-lopencv_hfs \-lopencv_img_hash \-lopencv_intensity_transform \-lopencv_line_descriptor \-lopencv_mcc -lopencv_quality \-lopencv_rapid \-lopencv_reg \-lopencv_rgbd \-lopencv_saliency \-lopencv_stereo \-lopencv_stitching \-lopencv_structured_light \-lopencv_phase_unwrapping \-lopencv_superres \-lopencv_optflow \-lopencv_surface_matching \-lopencv_tracking \-lopencv_highgui \-lopencv_datasets \-lopencv_text \-lopencv_plot \-lopencv_videostab \-lopencv_videoio \-lopencv_wechat_qrcode \-lopencv_xfeatures2d \-lopencv_shape \-lopencv_ml \-lopencv_ximgproc \-lopencv_video \-lopencv_dnn \-lopencv_xobjdetect \-lopencv_objdetect \-lopencv_calib3d \-lopencv_imgcodecs \-lopencv_features2d \-lopencv_flann \-lopencv_xphoto \-lopencv_photo \-lopencv_imgproc \-lopencv_coreINCLUDEPATH += $$OPENCV_INCLUDE_PATH/opencv4 \$$OPENCV_INCLUDE_PATH/opencv4/opencv2

在需要調用opencv庫的庫或則應用的pro文件中,通過以下片段鏈接庫

include(/path/youpath/opencv/xxxx.pri)

如果多個庫都需要用該庫,在相關庫pro中添加以上片段即可,這樣保證了鏈接庫的一致性,同一工程中的同一種庫鏈接的是不同路徑下的庫。

此時,完成編譯后,opencv相關的庫應該就正常添加到運行環境中了,在qtcreator中運行或調試程序時,就不會出現相關找不到庫的情況。

ps:部分庫之間是有前后依賴關系的,加載順序錯誤也有可能導致程序運行出錯,pkg_config鏈接方式較好,但也需要寫一下依賴路徑。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/17683.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/17683.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/17683.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Flutter 中的 AnimatedList 小部件:全面指南

Flutter 中的 AnimatedList 小部件:全面指南 在Flutter中,AnimatedList是一個專門用于展示和管理一個有序列表的組件,它可以對列表中的項進行添加、移除和重新排序操作,并且這些操作都伴隨著動畫效果。這使得AnimatedList非常適合…

精釀啤酒:品質與口感在消費者選擇中的權重分析

在啤酒市場中,消費者選擇的影響因素眾多,其中品質與口感是兩個核心要素。對于Fendi club啤酒而言,品質與口感的權重分析在消費者選擇中顯得尤為重要。 品質是消費者選擇啤酒的首要因素。隨著消費者對啤酒認知的提高,他們對品質的…

德邦快遞和德邦物流運費標準哪個更劃算?怎樣才能便宜的寄大件快遞?

在寄大件包裹快遞時,我們一般都知道選擇德邦,那么德邦快遞和德邦物流的收費標準哪個更劃算呢?下面,讓我們一起來了解德邦快遞和德邦物流的收費標準,以及如何根據實際情況做出最佳選擇。 首先了解快遞費用構成 快遞費用…

Prometheus Operator創建告警規則并接入釘釘報警

prometheus之釘釘報警 前言1. 添加prometheus報警規則1.2 添加自定義報警規則文件 2. 配置釘釘報警2.2 部署dingding插件 3. 編寫alertmanager配置文件 前言 在kubenetes上安裝了kube-promethues(包含Prometheus Operator),程序正常跑起來了&#xff0c…

IC開發——verdi基本用法

1. 基礎知識 1.1. verdi VCS和Verdi這兩個工具,這兩個工具目前都屬于synopsys公司。VCS主要負責編譯運行Testbench和RTL,并負責生成相應的波形文件。而verdi主要負責加載波形文件,查看信號的波形及其對應的代碼來進行調試驗證。Verdi最開始…

dimp導入提示 [警告]該工具不能解析此文件,請使用更高版本的工具

問題描述:dimp導入報錯 [dmdbalocalhost ~]$ dimp SYSDBA/Topnet_123\192.168.3.27:5241 FILEimp_exp.dmp LOGreport_ty_imp_20240528.log DIRECTORY/opt/dmdba LOG_WRITEY REMAP_SCHEMAreport:report_ty dimp V8[警告]文件"/opt/dmdba/report_ty_imp_2024052…

Linux 查找命令的操作,學完效率瞬間翻倍?

可以很肯定地說,find 命令是 Linux 運維必須熟知的操作之一。 讓我們看一道題: 如果你的 Linux 服務器上有一個名為 .logs 的目錄,如何刪除該目錄下最后一次訪問時間超過一年的日志文件呢? 這種情況很常見,但令人驚訝…

簡述nextTick 的作用是什么?他的實現原理是什么 ?

nextTick 的作用 在 Vue.js 中,nextTick 是一個非常有用的函數,它用于延遲執行一段代碼,直到下一次 DOM 更新循環結束之后。換句話說,當你修改了數據之后,視圖不會立即更新,而是等到下一次“DOM 更新循環”…

【Linux系統】進程間通信

本篇博客整理了進程間通信的方式管道、 system V IPC的原理,結合大量的系統調用接口,和代碼示例,旨在讓讀者透過進程間通信去體會操作系統的設計思想和管理手段。 目錄 一、進程間通信 二、管道 1.匿名管道 1.1-通信原理 1.2-系統調用 …

簡談SUID提權

SUID提權 0x01什么是SUID ? SUID (Set UID)是Linux中的一種特殊權限,其功能為用戶運行某個程序時,如果該程序有SUID權限,那么程序運行為進程時,進程的屬主不是發起者,而是程序文件所屬的屬主。但是SUID權限的設置只針對二進制可…

強化學習4:DQN 算法

看這篇文章之前,建議先了解一下:Q-Learning 算法。 1. 算法介紹 DQN 算法全稱為 Deep Q-Network,即深度Q網絡。它將 Q-Learning 與 Deep Learning 結合在了一起。 1.1 Q-Network Q-Learning 是使用 Q-table 才存儲決策信息的,…

AI推文神器,繪唐ai,文刻創作出品,sdmj二合一虹貓

AI推文神器,繪唐ai,文刻創作出品,sdmj二合一虹貓 https://qvfbz6lhqnd.feishu.cn/wiki/CcaewIWnSiAFgokOwLycwi0Encfhttps://qvfbz6lhqnd.feishu.cn/wiki/CcaewIWnSiAFgokOwLycwi0Encf AI推文神器是一種基于人工智能技術的工具,旨在幫助用戶快速生成優質的推文。它通過分…

iPhone“已刪除”照片被恢復,蘋果到底有沒有后門?

繼微軟本周推出的Windows“回憶”功能引發隱私焦慮,遭馬斯克和安全大咖們猛烈抨擊后,蘋果iPhone手機近日也曝出了類似的“記憶門”。 刪除十幾年的iPhone照片被恢復 近日,有蘋果手機用戶更新了蘋果上周發布的iOS 17.5系統后,意外…

妙解設計模式之策略模式

目錄 策略模式的概念生活中的例子編程中的例子 軟件工程中的實際應用數據排序文件壓縮支付方式圖形繪制 策略模式的概念 策略模式(Strategy Pattern)是一種行為型設計模式,它定義了一系列算法,把它們一個個封裝起來,并…

Android Graphics模塊中的各種State和重要類普法

Android Graphics模塊中的各種State和重要類普法 引言 尼瑪,這Android Graphics圖形棧蛋疼啊,更新太快了。機會是每年一個版本,前進的膠布不能停啊,繼續干。這邊博客,我們的核心是理一理Android Graphics中各種State狀…

2024最新版本激活Typora,1.8.10.0版本可用

?實測可用日期為:2024-05-28 目前最新版本 1.8.10.0 也是可以實現激活的 注:免修改注冊表、不用修改時間,更不需要破解補丁 01、下載&安裝 Typora 文件 從官網下載最新版本的 Typora,并安裝 或者阿里云盤: htt…

Pytorch深度學習實踐筆記12(b站劉二大人)

🎬個人簡介:一個全棧工程師的升級之路! 📋個人專欄:pytorch深度學習 🎀CSDN主頁 發狂的小花 🌄人生秘訣:學習的本質就是極致重復! 《PyTorch深度學習實踐》完結合集_嗶哩嗶哩_bilibi…

數據集008:吸煙、抽煙檢測數據集(含數據集下載鏈接)

數據集簡介 兩個數據集 一個是783張圖片對應的xml文件 一個是2482張圖片對應的xml文件 如下圖所示: 部分代碼: # 測試數據讀取 def test_data_loader(datadir, batch_size 10, test_image_size608, modetest):"""加載測試用的圖片…

大學生選擇算法向還是嵌入式向?

在開始前剛好我有一些資料,是我根據網友給的問題精心整理了一份「嵌入式的資料從專業入門到高級教程」, 點個關注在評論區回復“888”之后私信回復“888”,全部無償共享給大家!!! 由于嵌入式的薪資待遇和…

品牌建設不迷路:系統化方法讓品牌成長更高效

很多創始人才創業過程中都會發現: 企業越大,遇到的系統性的底層品牌問題就會越多,品牌的系統化建設底層根基如果不穩,后續的增長也會搖搖欲墜。 所以在當今競爭激烈的市場環境中,品牌的成功不僅僅依靠一個響亮的名字…