iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 22
2
Software Development

C++ 30天屠龍記系列 第 22

Day 22 - Cmake的編譯與專案流程

1, 配置專案

我們可以先配置一下專案
https://ithelp.ithome.com.tw/upload/images/20191001/20120557z3DcklvaoW.png
https://ithelp.ithome.com.tw/upload/images/20191001/20120557T0s39TCzhj.png

這裡是專案的文件結構

2, 安裝libfmt

用你喜歡的包管理器安裝就好了,我就用 brew 安裝 fmt
https://ithelp.ithome.com.tw/upload/images/20191001/20120557SjT6aTPVyj.png

3, 寫 CMakeLists.txt

cmake_minimum_required(VERSION 3.1..3.15)

project(helloFMT)

# Add Library:
		find_package(fmt)
# Build:
		add_executable(main src/main.cpp)
# Link Library:
		target_link_libraries(main fmt::fmt)
# C++ Version:
		target_compile_features(main PUBLIC cxx_std_17)

  • Cmake有多不同的寫法,而且非常容易寫亂,所以我就用了Yaml/TOML(也是很多新語言會用的)的方式和CMake本身的註解功能去管理我現在做的一每一步了。

4,先寫寫C++ File

終於入正題了,那麼現在就先看一個簡單例子吧

#include "fmt/format.h"
#include "string"

using namespace fmt;
using namespace std;

int main(){
	auto str = "Hello"sv;
	print("{}",str);
}
  • sv是string_view ,是常數string的例子(不會變的句子)

5, 現在進行編譯

  • 用ninja編譯

Windows用戶需要安裝Ninja,其他隨意

#確保已安裝了Chocolatey和在Administrater下面
choco install ninja

然後用CMake調用ninja 編譯的方法如下

https://ithelp.ithome.com.tw/upload/images/20191001/201205573CCyn4WwYj.png

如果是普通編譯的話用下面的方法就可以了

https://ithelp.ithome.com.tw/upload/images/20191001/201205578d9GKwbKfI.png


上一篇
C++ 30天屠龍記(第21天): 一文學懂函數式編程
下一篇
C++ 30天屠龍記(第23天): 今天的主題是JSON
系列文
C++ 30天屠龍記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言