1. 程式人生 > 實用技巧 >manjaro + kde 使用過程中問題記錄及解決方法

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檔案)