中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

網(wǎng)站cms大全枸櫞酸西地那非片的作用及功效

網(wǎng)站cms大全,枸櫞酸西地那非片的作用及功效,最常見的企業(yè)建站程序有,哪些做靠譜兼職網(wǎng)站有哪些引言 本篇文章講述如何簡單的使用cmake工具構建一個項目,幫助入門的c新手學會如何使用cmake. 我們在Clion新創(chuàng)建一個項目時,會發(fā)現(xiàn),除了main.cpp文件之外,還存在一個build-debug目錄和一個CMakelists.txt文件,如圖: …

引言
本篇文章講述如何簡單的使用cmake工具構建一個項目,幫助入門的c++新手學會如何使用cmake.

我們在Clion新創(chuàng)建一個項目時,會發(fā)現(xiàn),除了main.cpp文件之外,還存在一個build-debug目錄和一個CMakelists.txt文件,如圖:
在這里插入圖片描述
CMakelists.txt
CMakelists.txt這個文件描述的是這個項目待編譯的源文件,編譯選項,庫依賴等信息,類似于java項目中的maven.簡單來說呢,Cmakelists.txt就是一個描述你這個項目總結構的一個文件.它默認的結構是這樣的:
在這里插入圖片描述
cmake_minimum_required:
是指能接受的cmake工具的最低版本
project:
是指該項目的項目名
set:
指的是當前使用的C++版本,如圖,目前使用C++17
add_executable:
指該項目的項目名,和所有待編譯的源文件.


cmake-build-debug目錄:
在Clion中默認是這個樣子的:
在這里插入圖片描述

那么當我們點擊Clion右上角的運行按鈕時,不僅終端出會輸出hello,world的運行結果,在cmake-build-debug這個文件夾中也會多出一部分內容,多出的這部分內容是構建的中間文件.

構建過程
當我們在Clion中點擊運行按鈕的時候,Clion會幫助我們自動構建項目,但是實際的構建過程是怎樣的呢?

1.首先,CMakelists.txt里記錄的是這個項目的一個總結構,庫依賴等信息
,我們可以使用cmake命令進行構建

cmake Path

cmake命令會根據(jù)Cmakelists.txt里面的內容,在對應的路徑下生成一個makefile文件.

Makefile 文件是一個包含構建規(guī)則的文本文件,它定義了如何將源代碼文件轉換為可執(zhí)行文件或庫文件。Makefile 文件中包含了目標(target)、依賴項(dependencies)和命令(commands)。目標表示要生成的文件,依賴項表示目標所依賴的文件,而命令則是執(zhí)行構建過程的具體命令。

2.通過執(zhí)行 make 命令,Make 工具會讀取當前目錄下的 Makefile 文件,并根據(jù)其中的規(guī)則和命令來執(zhí)行構建過程。Make 工具會分析文件的依賴關系,檢查目標文件和依賴文件的時間戳,以確定是否需要重新編譯某個文件。然后,它會按照規(guī)則中定義的命令來執(zhí)行編譯、匯編和鏈接等操作,從而生成最終的可執(zhí)行文件或庫文件。

make path

必須有makefile文件才能執(zhí)行make命令,然后就會生成一個可執(zhí)行文件,這個可執(zhí)行文件,就是一個簡單項目的運行結果.

Makefile 文件是非常靈活和可定制的,你可以根據(jù)項目的需要定義自己的規(guī)則和命令。通過 Make 工具和 Makefile 文件,你可以更加方便地管理和構建 C++ 項目,并確保代碼在不同平臺上的可移植性。

所以說構建一個項目的大致過程就是

Cmakelists.txt ------>makefile--------> project(可執(zhí)行文件)cmake          make

我們都知道,一個純文本的CPP文件,要變成可執(zhí)行文件,是要經(jīng)歷四個過程的,分別是:
預處理階段,編譯階段,匯編階段,鏈接階段
那么其實這些過程就是在make命令執(zhí)行makefile文件中的命令這個階段中執(zhí)行的

但是為什么Clion中,在build目錄下沒生成makefile文件呢,而是生成了一堆構建的中間文件?
這是因為Clion簡化了構建過程,所以沒有生成可讀的makefile文件,但是它的實際構架過程也是這個過程.


簡單的構建例子
如果我們不使用Clion,而是直接用命令行運行一個簡單項目應該怎么辦?
1.創(chuàng)建一個項目文件夾

mkdir my_project
cd my_project

2.創(chuàng)建一個main.cpp

vim main.cpp隨便寫點Hello,world之類的

3.創(chuàng)建CMakelists.txt文件

vim CMakelists.txt寫入:
cmake_minimum_required(VERSION 3.24)
project(my_project)
set(CMAKE_CXX_STANDARD 17)
add_executable(my_project main.cpp)

4.創(chuàng)建一個build目錄

mkdir build
cd build

5.執(zhí)行cmake命令,會生成一個makefile

cmake ..

6.執(zhí)行make命令,會生成一個可執(zhí)行文件

make

7.執(zhí)行可執(zhí)行文件,輸出結果

./可執(zhí)行文件的名字

當然這只是一個最簡單的例子
下面我們用Clion,利用CMakelists.txt寫一個稍微復雜一丟丟的項目

接下來我將舉一個簡單例子,來講一下CMakelists.txt的一些其他用法.

微項目
項目結構:

在這里插入圖片描述
我們創(chuàng)建一個include的目錄,用來存儲頭文件,因為我們在寫C++項目時,需要有一個習慣,就是在.h文件中定義類和函數(shù),但是并不寫函數(shù)體,而是在.cpp文件中來完成函數(shù)體的部分.

Student.h:

#ifndef UNTITLED8_STUDENT_H
#define UNTITLED8_STUDENT_H
#include<string>class Student
{int age;std::string name;
public:Student(std::string name){this->name=name;}std::string get_name();
};
#endif //UNTITLED8_STUDENT_H

Student.cpp

#include "Student.h"std::string Student::get_name() {return this->name;
}

當寫到這里的時候就會出現(xiàn)點問題,當我們在寫入
#include "Student.h"的時候會發(fā)現(xiàn),這部分代碼會標紅,這是因為使用
Student.h跟Student.cpp不在同一個文件夾之下,我們可以使用

#include"../include/Student.h"

來引入這個頭文件,但是這樣太麻煩了,我們還是希望使用
#include"Student.h"這樣簡單的寫法,所以我們可以在CMakelists.txt文件中寫點東西:
在這里插入圖片描述
加上這行之后,我們就可以直接使用 #include "Student.h"來引入了,include是頭文件所在的目錄名.


main.cpp

#include <iostream>
#include"Student.h"
int main() {Student *stu =new Student("sunjin,hello");std::cout<<stu->get_name()<<std::endl;return 0;
}

但是現(xiàn)在又有一個問題,我們需要在CMakelists.txt下,把Student.cpp也添加上去,否則Student.cpp是不會被編譯的

在這里插入圖片描述
我們可以用
aux_source_directory給 ./src下面所有的文件起一個別名,然后把這個別名
加入到 add_executable中,這樣src目錄下面(一級)的所有文件就都能被編譯了,但是這樣并不能編譯子目錄下的文件,需要再用別名.

cmake_minimum_required(VERSION 3.24)project(untitled8)set(CMAKE_CXX_STANDARD 17)include_directories(include)aux_source_directory(./src DIR)add_executable(untitled8 ${DIR})

做好這些之后,我們可以點擊運行鍵,然后就可以運行了,也可以自己建一個build目錄,手動cmake和make.
up我不是匠人

http://www.risenshineclean.com/news/48723.html

相關文章:

  • 有沒有做q版頭像的網(wǎng)站seo在線培訓機構排名
  • 有哪些做的比較精美的網(wǎng)站長沙seo
  • 建設部網(wǎng)站官網(wǎng)造價工程師孫思新app推廣刷量
  • 政府網(wǎng)站誰來做建網(wǎng)站需要多少錢
  • 上海企業(yè)公示網(wǎng)優(yōu)化軟件有哪些
  • 靖江有哪些做網(wǎng)站的如何網(wǎng)站優(yōu)化排名
  • 西寧做網(wǎng)站君博認同seo軟文是什么意思
  • 寬帶開戶多少錢百度seo在哪里
  • 國外做寵物產(chǎn)品的網(wǎng)站百度關鍵詞工具在哪里
  • 企業(yè)申請網(wǎng)站建設請示朋友圈網(wǎng)絡營銷
  • 知名做網(wǎng)站公司經(jīng)典軟文推廣案例
  • 圖文網(wǎng)站模版抖音關鍵詞優(yōu)化
  • 網(wǎng)站建設規(guī)劃書中包含內容南寧seo網(wǎng)站排名優(yōu)化公司
  • 電子商務網(wǎng)站設計制作公司網(wǎng)站的步驟
  • 珠寶營銷型網(wǎng)站2022年今天新聞聯(lián)播
  • 電腦網(wǎng)頁設計代碼模板百度推廣優(yōu)化怎么做的
  • 網(wǎng)站頂部懸浮廣告代碼關鍵詞挖掘網(wǎng)站
  • 衡水做外貿網(wǎng)站建設項目推廣方案
  • 俄語網(wǎng)站建設注意事項全球搜是什么公司
  • 做網(wǎng)站得花多錢培訓班招生方案
  • 網(wǎng)站關鍵字如何做成都網(wǎng)站設計
  • 開網(wǎng)站賺50萬做網(wǎng)站建設方案優(yōu)化
  • 0基礎如何做網(wǎng)站2021近期時事新聞熱點事件簡短
  • 長春可做微網(wǎng)站的公司企業(yè)網(wǎng)站制作開發(fā)
  • 一開始用php做網(wǎng)站電工培訓課程
  • 騰訊云wed服務器做網(wǎng)站開發(fā)小程序
  • 北流網(wǎng)站建設四川企業(yè)seo
  • 如果使用自己電腦做網(wǎng)站百度廣告官網(wǎng)
  • 甪直做網(wǎng)站蘇州seo門戶網(wǎng)
  • 做網(wǎng)站需要知道什么sem掃描電子顯微鏡