C vscode cmake的編譯使用

2021-10-04 20:33:47 字數 1752 閱讀 6883

這是乙個十分基礎的cmake使用記錄

my_test # 根目錄

|——cmakelists.txt

src # 源檔案目錄

|——cmakelists.txt

|——circle.cc

|——main.cc

include # 頭檔案目錄

|——circle.h

#ifndef _circle_h

#define _circle_h

class circle

;#endif

#include"circle.h"

circle::circle()

circle::circle(double r)

double circle::area()

#include#include"circle.h"

using namespace std;

int main()

# 指定版本號

cmake_minimum_required(version 3.0.0)

project(circle version 0.1.0)

include(ctest)

enable_testing()

set(cpack_project_name $)

set(cpack_project_version $)

include(cpack)

# 新增頭檔案目錄

include_directories("/home/suu/desktop/123/include")

# 新增子資料夾,子資料夾中必須包含cmakelists.txt

add_subdirectory(src)

# 生成可執行檔案

add_executable(main src/main.cc)

# 鏈結編譯好的庫檔案

target_link_libraries(main functions)

# 輸出訊息

message("123123:$$

$$")# 只能放在根檔案裡?

# include_directories("$/include")

aux_source_directory(. lib_srcs)

# 編譯生成靜態庫檔案

add_library(functions $)

在vscode中安裝cmake tools外掛程式之後在專案中按f7即可完成

但是vscode+cmake tools比較不好的地方就是乙個專案它只能從根目錄下編譯(或許是我功力不夠)

cmake常用變數

cmake_binary_dir:工程發生編譯的目錄,/build

cmake_source_dir:工程的根目錄,/

cmake_current_source_dir:當前cmakelists.txt所在的目錄

cmake_include_path:新增標頭檔案搜尋路徑. 預設為空。配合 find_file() 以及 find_path 使用

cmake_library_path:新增庫檔案搜尋路徑. 預設為空。配合 find_library() 使用

cmake入門實戰:

編譯原理 編譯的過程

預處理 prepressing 展開巨集定義 處理 define,include 刪除注釋,新增行號和檔名標識。生成.i 預處理檔案 編譯 compilation 詞法分析 語法分析 語義分析 優化。預處理 編譯用ccl完成。生成.s 彙編 檔案 彙編 assembly 把彙編 轉成機器可執行的指令...

編譯 ORB SLAM的ROS編譯

問題 問題分析 在網上搜了很多資料,有兩種 pip install rospkg 但是提示python2.7不在維護資訊,然後重新編譯沒成功 可能是由於ros和python3衝突導致的,需要切換python版本 bashrc新增環境變數 export pythonpath pythonpath us...

編譯原理 編譯器的編譯基本過程

原文出處 崤嶙的部落格 編譯器最基本的功能就是把高階語言 例如c fortran 編寫的 轉化為機器指令 就是01串 從這個角度來說它本質上是個轉換過程。經典的編譯過程主要包括 1 詞法分析 lexical analysis 2 語法分析 語法分析的輸入是一連串的token 詞法分析的輸出 根據語言...