manjaro + kde 使用過程中問題記錄及解決方法
前言:使用manjaro的經歷:2020/11月中旬時,我被自己很差的電腦搞得心態爆炸,開機要5分鐘,只是開個pycharm編輯器+網頁電腦就開始卡屏,於是就決定購買新電腦。在新電腦還沒到貨的情況下,想給舊電腦做做好玩的事情,剛好今年我們上linux實驗課,同時有了解到manjaro這個linux發行版,所以我給自己的舊電腦安裝了manjaro+kde;這次作業系統更換著實給了我驚喜,原來使用win10那麼卡慢的電腦,在這個新作業系統下有明顯的流暢提升,至少同時開6個應用程式也比原來開2個要快,並且kde這個精美可定製的桌面環境我也很喜歡。於是我入坑了manjaro,希望自己在使用這個作業系統的過程中同時學好linux。
但是,我還是個linux菜鳥,在使用過程中會遇到各種各樣的問題。於是我決定把這些問題和解決方法記錄下來,一來方便我將來再出現同樣的問題可以快速檢視,二來幫助同樣在使用manjaro的人們。
vscode中C++多檔案編譯
問題:在vscode中,在預設情況下,按F5後只能編譯當前檔案,無法編譯多個檔案。
解決:舉個例子
在~/code/C++/learn中新建的一下3個檔案
//main.cpp
#include "a.h"
#include <iostream>
int main(){
func();
std::cout << 'a' << std::endl;
return 0;
}
//a.cpp #include <iostream> #include "a.h" void func(){ std::cout << "Hello World!" << std::endl; }
//a.h
#ifndef _A_H_
#define _A_H_
extern void func();
#endif
如果我們在某一個檔案按F5就會出錯,那該怎麼辦了,我們需要編寫Makefile檔案,launch.json檔案,task.json檔案。
Makefile
src = main.cpp a.cpp
learn: $(src) a.h
g++ -g $(src) -o learn
clean:
rm learn
tasks.json
{ "tasks": [ { "type": "shell", "label": "make build active file", "command": "/usr/bin/make", "args": [ "-C", "${workspaceFolder}" ] } ], "version": "2.0.0" }
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "g++ - 生成和除錯活動檔案",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/${workspaceRootFolderName}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "為 gdb 啟用整齊列印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "make build active file",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}
json檔案放入~/code/C++/learn/.vscode中
這時候你在點選F5就會進入除錯。
ok,這就完成了嗎,當然不是,上面的json檔案是通用的,但是Makefile不是,不同的專案編寫的內容不同,並且對於複雜的專案,Makefile的編寫很麻煩,甚至你可能寫不出來;眾所周知,人是懶惰的, 有人就發明了qmake來自動生產Makefile。
下面來介紹qmake的使用:
qmake安裝 (qmake是Qt自帶的)
先進入程式目錄:
然後輸入
你會發現生成了 資料夾名.pro 檔案
最後輸入
你會發現生成了 Makefile檔案
然後和上面介紹的操作即可(就是寫好兩個json檔案)