使用 SCons 代替 Makefile 快速構建應用程式
使用 SCons 代替 Makefile 快速構建應用程式
- 作者:柳大·Poechant
- 部落格:blog.CSDN.net/Poechant
- 郵箱:zhongchao.ustc@gmail.com
- Copyright © 柳大·Poechant
0 Introduction
為 make 工具編寫建造規則不是一件容易的事。它複雜的配置規則,即使是有經驗的開發者也望而生畏。make 工具的許多替代品便因此而誕生,SCons 就是是其中之一。SCons 是一個用 Python 語言編寫的類似於 make 工具的程式。與 make 工具相比較,SCons 的配置檔案更加簡單清晰明瞭,除此之外,它還有許多的優點。
SCons 支援多種作業系統平臺,實現程式的構建可移植性。
1 Install
$ tar -xvf scons-2.0.1.tar
$ cd scons-2.0.1
$ sudo python setup.py install
2 Hello World
2.1 Source File
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
printf("Hello, SCons!\n");
return 0;
}
2.2 Config File
Program('helloscons.c')
2.3 Build
$ ls helloscons
helloscons.c SConstruct
$ cd helloscons/
$ scons
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o helloscons.o -c helloscons.c
gcc -o helloscons helloscons.o
scons: done building targets.
$ ls
helloscons helloscons.c helloscons.o SConstruct
$ ./helloscons
Hello, SCons!
2.4 Run
$ ./helloscons
Hello, SCons!
2.5 Clean
$ scons -c
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Cleaning targets ...
Removed helloscons.o
Removed helloscons
scons: done cleaning targets.
$ ls -a
helloscons.c SConstruct .sconsign.dblite
3 Improve your skills!
3.1 Specify your executable file name
Program('myscons, 'helloscons.c')
3.2 Be quiet when building!
$ scons -Q
3.3 A little more complicated program
Program('helloscons2', ['helloscons2.c', 'file1.c', 'file2.c'],
LIBS = 'm',
LIBPATH = ['/usr/lib', '/usr/local/lib'],
CCFLAGS = '-DHELLOSCONS')
$ scons -Q
gcc -o file1.o -c -DHELLOSCONS file1.c
gcc -o file2.o -c -DHELLOSCONS file2.c
gcc -o helloscons2.o -c -DHELLOSCONS helloscons2.c
gcc -o helloscons2 helloscons2.o file1.o file2.o -L/usr/lib -L/usr/local/lib -lm
3.4 Regular expression
Program('helloscons2', Glob('*.c')
4 Reference
- http://www.ibm.com/developerworks/cn/linux/l-cn-scons/index.html?ca=drs-
-
轉載請註明來自“柳大的CSDN部落格”:blog.CSDN.net/Poechant
-
相關文章
- 使用Golang快速構建WEB應用GolangWeb
- 【譯】如何使用PHP快速構建命令列應用程式PHP命令列
- 使用React.js和應用快取構建快速同步應用程式ReactJS快取
- 使用go指令碼代替makefileGo指令碼
- Makefile 專案構建最佳化原理與應用
- 快速學習丨使用Blazor構建Web應用BlazorWeb
- 使用SignalR構建聊天應用程式SignalR
- 使用 Spring Boot 快速構建 Spring 框架應用Spring Boot框架
- 使用Rust和WebAssembly構建Web應用程式RustWeb
- 使用微服務構建現代應用程式微服務
- Elastic App Search 快速構建 ES 應用ASTAPP
- 使用 webpack 構建應用Web
- 使用汽車應用庫構建應用
- 手把手教學,如何使用低程式碼快速構建應用程式步驟詳解!
- 使用React Native和Expo快速構建原生移動iOS和Android應用程式React NativeiOSAndroid
- 快速入門:構建您的第一個 .NET Aspire 應用程式
- 使用SvelteKit構建實時websocket應用程式 - IngestWeb
- Judo:使用無程式碼構建原生應用體驗
- 使用 Oracle XML Publisher 構建線上報表應用程式OracleXML
- 使用 nuxi build 命令構建你的 Nuxt 應用程式UXUI
- 4.1.7.2.4 使用快速應用程式通知
- Go通過cobra快速構建命令列應用Go命令列
- JavaFX桌面應用-構建程式框架Java框架
- 使用webpack構建多頁應用Web
- 五、Spring Web應用程式構建SpringWeb
- 如何構建 Android MVVM 應用程式AndroidMVVM
- 構建應用程式的正確方法
- 「譯」使用 Node 構建命令列應用命令列
- 使用 Cloudflare 構建 Web3 應用CloudWeb
- 使用 WebSocket 構建實時性應用Web
- 使用AngularJS構建大型Web應用AngularJSWeb
- 使用React、Electron、Dva、Webpack、Node.js、Websocket快速構建跨平臺應用ReactWebNode.js
- 使用 IBM Bluemix 構建,部署和管理自定義應用程式IBM
- 使用 Docker 和 Elasticsearch 構建一個全文搜尋應用程式DockerElasticsearch
- 使用Backbone構建精美應用的7條建議
- 快速構建企業級應用的開發平臺
- 快速構建H5單頁面切換應用H5
- 構建 API 應用API