Visual Studio(VS)和QT的踩坑筆記

2022-08-22 17:57:10 字數 2343 閱讀 1964

寫在前面:在家待就業了接近半年,終於忍不住去找了份工作去嘗試乙個人的生活。這第乙份正式工作是做工具機模擬切割的軟體開發,雖然不是傳統的網際網路工作,但因為是c++開發,工作也還算對口吧。因為疫情原因自己的實習被鴿,所以這算是我第一次上班,結果剛來就被帶進了乙個大專案;要求看乙份進萬行的工程原始碼;boss也對我期望很大(各種暗示好好工作);每天的自己就像被趕著去屠宰的鴨子一樣。哎!苦也沒辦法,青春飯就是如此。如今好不容易專案有了階段性成果,不如乘此機會記錄下一路上踩到的各種坑,不僅加深記憶,也勉勵一下未來的自己吧!如果能順便解決網友們的疑惑,那更是不勝榮幸!(上班摸魚打出來的,無圖見諒,哈哈哈_)

現有乙份開源的三維空間物體布林操作(交並差計算)vs工程,要求將他移植到qt平台,即完成vs工程到qt工程的移植。

環境配置如下:

問題描述:當qt呼叫visual studio裡的msvc編譯器時,無論什麼工程都會報出如此錯誤。錯誤的檔案是qobjectdefs.h,是qt的核心檔案之一。

解決過程:看來是老版本的qt還有vs存在一定的相容問題。網上能查到的錯誤是錯在qalgorithm.h裡的,還不一樣。不過網上的那個有給出官方社群裡修改原始碼的辦法,我去看了一下,我的qalgorithem已經和修訂版一樣了啊,於是便想能不能在那個社群裡找到qobjectdefs的修改版呢?然而並沒有,哈哈。

解決方法:最後找boss求來了vs2015和qt5.12,乙個更新乙個更老,問題得到解決。要注意的是qt安裝時,要勾選相對應vs版本的msvc編譯器。

問題描述:開啟那個開源工程的sln檔案後,爆出如上錯誤,vs無法繼續正常生成和執行的工作。

解決過程:這個很好理解,作者當初編寫程式的時候用的vs工具集和我的不一樣,改一改就是了。

解決方法:選單欄專案—設定,或者解決方案資源管理器裡右鍵專案—設定,在配置屬性—常規—常規中找到平台工具集一項,會顯示為visual studio 20__(v1_0)(未安裝),點選它在下拉框裡找到自己電腦裡有的隨便乙個就行,再點選應用即可。

問題描述:既然是要做vs工程轉qt平台,能讓宇宙第一ide的vs自動完成的事情何必親自動手呢?網上查到vs果然有qt的相關外掛程式qt vs tools(能聯網的可以直接在vs工具-擴充套件和更新裡下)。讓boss下好傳給我後雙擊vs自動安裝,重啟vs後選單欄裡有了qt vs tools項,那麼直接create basic.pro file生成qt creator工程檔案,然後convert custom builds steps to qt/msbuild不就能直接工作完成了——個屁。qt vs tools裡這些選項全他媽是黑的!

解決過程:其實也很好理解,分布過程如下:

首先,qt vs tools裡點qt options,看看有沒有自動檢測到qt版本,如果全空的話點選add新增,path裡選擇(qt安裝路徑)/(qt版本號)/(msvc20xx64或32)這個路徑,vs會找到裡面的qmake程式並自動填寫options裡剩下的內容。讓vs和你的qt真正的「聯絡」起來。

其次,在新建專案裡多了新建qt專案的選項,隨便創乙個空專案,會發現這個qt專案居然沒有qt creator的配置檔案.pro,再看看qt vs tools,發現它那些轉換選項都能用了。那現在真相大白了:網上說的那些用qt vs tools的部落格不是騙人,而是因為這方法只能用來轉換vs建立的qt工程,而不能直接轉換普通的c++工程。

解決方法:修改工程的配置檔案,讓vs相信這是能轉換的玩意就行。參考如是網頁,用文字編輯器開啟源工程的vcxproj檔案,找到propertygroup label="globals"的配置群,在裡面新增標籤keyword,內容是qt4vsv1.0(記得標籤閉合),儲存後重新開啟vs工程,就可以進行上面的操作啦。實際操作中keyword裡時qt4還是5,vsv1.0還是2.0沒多大關係,vs會自動幫你修正的(比如我的就變成了qtvs_v303)。

./configure

make

make install

libs += -l$$pwd/(庫資料夾名) -l(庫名1) -l(庫名2)……

includepath+= $$pwd/庫資料夾

dependpath += $$pwd/庫資料夾

其中,$$pwd是pro檔案所在目錄,-l讓qt確認庫目錄,-l確認特定的庫,第一句確定要新增的庫;第二第三句確認對應的.h和依賴路徑,這樣就足夠了。如果用qt自帶的新增庫功能的話,會報出不是win32支援的可執行檔案的錯誤,所以來說還是自己編寫pro檔案靠譜!

Visual Studio(VS)的基本使用

勾選自己開發所需元件進行安裝 時間較長 注 當在以上兩個位置同時更改時,以第二個為準。無論在debug還是release模式下,都可設定.pdb檔案的輸出與否,將專案屬性頁 配置屬性 鏈結器 除錯 生成除錯資訊設定為是則輸出,否則不輸出。在第三步中,也可以通過 指定。例 pragma comment...

和 區別和聯絡, 和 區別和聯絡

和 區別和聯絡,和 區別和聯絡,實際專案中,什麼情況用哪種?首先,和 的聯絡 共同點 和 都可以用作 邏輯與 運算子,都是雙目運算子。具體要看使用時的具體條件來決定。無論使用哪種運算子,對最終的運算結果都沒有影響。情況1 當上述的運算元是boolean型別變數時,和 都可以用作邏輯與運算子。情況2 ...

rpx和樣式和class和flex

5 style 靜態的樣式統一寫到 class 中。style 接收動態的樣式,在執行時會進行解析,請盡量避免將靜態的樣式寫進 style 中,以免影響渲染速度。例 6 class 用於指定樣式規則,其屬性值是樣式規則中類選擇器名 樣式類名 的集合,樣式類名不需要帶上.樣式類名之間用空格分隔。關於f...