当前位置:网站首页>Compile and build, from the bottom to the top
Compile and build, from the bottom to the top
2022-07-06 17:38:00 【Wzzzzzzx】
In ancient times
In the beginning , We only have one on hand gcc
. No matter what you do, you have a shuttle , Call directly gcc
To compile a project . When there are not many project documents, it can really meet the needs . But many people work together , When the project gets bigger , This method is extremely easy to cause confusion , And the workload is too large .
Feudal period
Then we have make
and makefile
. This is a fully automated solution , It can be based on the rules we define , Automatically compile and build . A project will have different functions , modular , Put all kinds of source code files in categories by type and other methods , Resource file , The temporary file . and makefile
The job is to define the Compilation Rules of the whole project . These rules indicate which files need to be compiled first , Which can be post compiled . Besides ,makefile
It can effectively describe the dependencies between project files and process commands , When only individual files are modified, only necessary processing needs to be performed , You don't have to recompile the whole project , Greatly improved development efficiency .
however make
There are two problems . One is when the project is big ,makefile
It will be very difficult to write and understand , Maintainability is not strong . The second is the problem of cross platform , Every time I change the platform , All need to be revised makefile
.
the Republic of China era
Then there is CMake
The era of the , Although it is in the period of the Republic of China in this article , but CMake
It should be right now C/C++
The factual standard of how the project is built .CMake
Is a cross platform compilation tool , My understanding is that it defines a compilation abstraction layer , Be able to generate all kinds of makefile/project
For different platforms make
Use . All we need to do is write it manually CMakeLists.txt
file .
modern society
about Conan
The cognitive , I think this is a higher level , Support different platforms / compiler / Building tools / Solution of construction mode . Although it is a package manager , But we can use its scripted operation to build packaging , Download upload package , Solve the problem of dependence .Conan
It needs to be used with various construction tools , However, these build scripts do not need to consider various specific configurations when implementing, such as Debug
still Release
,64 A still 32 position , Static library or dynamic link library , Even the package installation can be ignored ,Conan
Can be completed with the help of scripts , Specific usage can refer to This blog . secondly ,Conan
It also solves the problem of dependency , When building, it can automatically pull the corresponding dependency Library .
边栏推荐
- Detailed explanation of data types of MySQL columns
- CTF reverse entry question - dice
- Huawei certified cloud computing hica
- Integrated development management platform
- [VNCTF 2022]ezmath wp
- 【MySQL入门】第一话 · 初入“数据库”大陆
- connection reset by peer
- Xin'an Second Edition: Chapter 23 cloud computing security requirements analysis and security protection engineering learning notes
- connection reset by peer
- Flink analysis (I): basic concept analysis
猜你喜欢
PySpark算子处理空间数据全解析(4): 先说说空间运算
Integrated development management platform
Solr appears write Lock, solrexception: could not get leader props in the log
Wu Jun's trilogy insight (V) refusing fake workers
Display picture of DataGridView cell in C WinForm
Wu Jun trilogy insight (IV) everyone's wisdom
The most complete tcpdump and Wireshark packet capturing practice in the whole network
Flink analysis (II): analysis of backpressure mechanism
Automatic operation and maintenance sharp weapon ansible Foundation
Models used in data warehouse modeling and layered introduction
随机推荐
Display picture of DataGridView cell in C WinForm
Learn the wisdom of investment Masters
Start job: operation returned an invalid status code 'badrequst' or 'forbidden‘
C version selenium operation chrome full screen mode display (F11)
华为认证云计算HICA
Chrome prompts the solution of "your company management" (the startup page is bound to the company's official website and cannot be modified)
[ciscn 2021 South China]rsa writeup
05 personal R & D products and promotion - data synchronization tool
[ASM] introduction and use of bytecode operation classwriter class
MySQL basic addition, deletion, modification and query of SQL statements
【MMdetection】一文解决安装问题
Remote code execution penetration test - B module test
Concept and basic knowledge of network layering
07 personal R & D products and promotion - human resources information management system
connection reset by peer
Solr appears write Lock, solrexception: could not get leader props in the log
Serial serialold parnew of JVM garbage collector
【MySQL入门】第四话 · 和kiko一起探索MySQL中的运算符
Wordcloud colormap color set and custom colors
复盘网鼎杯Re-Signal Writeup