python自動化構建工具_Python自動化構建工具scons使用入門筆記

這段時間用到了scons,這里總結下,也方便我以后查閱。

一、安裝sconsLinux環境(以CentOS為例)

1、yum安裝

yum install scons

2、源碼安裝

下載scons:http://http://jaist.dl.sourceforge.net/project/scons/scons/2.3.0/scons-2.3.0.zip

安裝scons:python setup.py install

二、scons常用命令

scons -c : 可以清除生成的臨時文件和目標文件,相當于執行make clean。

scons -Q : 將產生更少的輸出信息。

三、scons使用示例

1、編譯可執行文件

使用Program函數進行可執行文件的編譯。

1.1 單文件方式

1.1.1 編寫程序代碼

建立文件test.c,內容如下:

復制代碼 代碼如下:

#include

int main()

{

printf("Just a test!\n");

return 0;

}

1.1.2 編寫SConstruct代碼

內容如下:

復制代碼 代碼如下:

Program("test1.c")

1.1.3 編譯程序

執行scons命令進行編譯,效果如下:

1.2 多文件方式

1.2.1 編寫程序代碼

test1.h文件:

復制代碼 代碼如下:

#include

void fun11();

test1.c文件:

復制代碼 代碼如下:

#include "test1.h"

void fun11()

{

printf("fun11\n");

}

test2.c文件:

復制代碼 代碼如下:

#include "test1.h"

int main()

{

fun11();

return 0;

}

1.2.2 編寫SConstruct代碼

內容如下:

復制代碼 代碼如下:

Program('test', ['test1.c','test2.c'])

或者:

復制代碼 代碼如下:

Program('test',Glob('*.c'))

1.2.3 編譯程序

執行scons命令進行編譯。

1.3 依賴

1.3.1 鏈接庫

語法示例如下:

復制代碼 代碼如下:

Program('test', ['test1.cpp'],LIBS=['boost_system','boost_thread-mt'], LIBPATH='/usr/lib64')

1.3.2 包含庫

語法示例如下:

復制代碼 代碼如下:

Program('program',Glob('*.c'),CPPPATH='/home/admin/inc')

2、編譯靜態庫

語法示例如下:

復制代碼 代碼如下:

Library('libtest1',['test1.c'])

3、編譯動態庫

語法示例如下:

復制代碼 代碼如下:

SharedLibrary('libtest1',['test1.c'])

三、其它

參考資料

(1) scons主頁:http://www.scons.org/

(2) scons文檔:http://www.scons.org/documentation.php

本文標題: Python自動化構建工具scons使用入門筆記

本文地址: http://www.cppcns.com/jiaoben/python/120598.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373847.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373847.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373847.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java 8狀態更新

即將到來的Java SE 8發行版的兩大新語言功能是Lambda Expressions和Modularity。 對于這兩者,這些天的狀態更新已經發布。 我會與您共享鏈接,因此您可能會在假期中通讀它們 Oracle計劃在2013年中期發布Java SE 8。 Lambda項目 Lambda項目以及JSR-335希望…

java 18 - 6 TreeMap嵌套使用

HashMap嵌套HashMap   動物     犬類         哈士奇   2         薩摩耶   1     貓類        波斯貓   2        加菲貓   3 先存儲元素,然后遍歷元素 1 package map_son;2 3 import java.util.HashMap;4 import…

程序設計語言

程序設計語言使用于書寫計算機程序的語言。程序設計語言有3個方面的因素,即語法,語義和語用。語法標識程序的結構或形式。語義表示程序的含義。語用表示程序與使用者的關系。 程序設計語言的發展史 程序的復雜性度量 1,代碼行度量法 出錯率&a…

python集合類型是一種具體的數據類型_Python3基礎語法之集合類型

set也是一種組合數據類型,支持成員關系操作(in)、對象大小計算操作符(len()),并且是iterable。集合數據類型至少提供一個set.isdisjoin()方法,支持比較,也支持為邏輯操作(在集合用于聯合、交叉等上下文中使用)。只有可哈希運算的對…

Linux 安裝之U盤引導

說到裝系統最簡單的方法無非就是找個系統安裝光盤來然后就一步一步慢慢的安裝。簡單是簡單但好似大多數人好像都木有Linux的安裝光盤。因此只能用U盤來模擬光盤的功能來裝系統咯。 電腦上裝有Windows 7現要裝Linux變雙系統。 安裝Linux前的準備: 1、電腦上分出空閑的…

OSGi:簡介

為基于Java的系統創建的OSGi提供了模塊化系統的框架。 OSGi使得可以定義每個單獨模塊與其他模塊的依賴關系,并使用戶可以控制生命周期并動態更改系統的每個組件。 OSGi是一個規范,最常見的實現可以算作Equinox , Apache Felix和Knoplerfish 。…

一起動手打造個人娛樂級linux

我們使用電腦,一直以來用的都是windows,但是對于像我這種愛折騰的人來說,嘗試使用linux系統應該是一種不錯的體驗。說到linux,許多人可能都沒聽過,或者知道的人對它印象是這樣的: 然而,linux發展…

PostgreSQL數據類型

http://blog.csdn.net/neo_liu0000/article/details/6254086 第六章 數據類型 6.1概述 PostgreSQL 提供了豐富的數據類型。用戶可以使用 CREATE TYPE 命令在數據庫中創建新的數據類型。PostgreSQL 的數據類型被分為四種,分別是基本數據類型、復合數據類型、域和偽類…

centos 卸載ffmpeg_CentOS Linux 操作系統安裝 FFmpeg 教程

FFmpeg 是一個非常熱門的開源項目,用來編解碼音頻視頻流,被廣泛用于各種流服務中。本教程在 CentOS 6、7、8 上面都可以使用,用來安裝 FFmpeg 軟件。一、安裝前需求一個 sudo 賬戶,一般都是默認 root 賬戶即可。1、CentOS 8安裝所…

Linux 火狐瀏覽器安裝Flash插件

Linux系統安裝完畢后,發現火狐瀏覽器視頻播放不了而且總是提示安裝Flash。而按火狐瀏覽器上的提示Flash插件安裝總是失敗,木有辦法只能手動安裝Flash插件啦。 到Flash官網:http://get.adobe.com/cn/flashplayer/ 下載系統對應的Flash插件&…

按匯總分組/多維數據集

時不時地,您會遇到一個使您達到SQL限制的要求。 我們中的許多人可能會提早放棄并使用Java / [或您的語言]計算內容。 相反,使用SQL可能是如此簡單快捷。 如果您使用的是高級數據庫,例如DB2 , Oracle , SQL Server &…

TCPUDP

TCP(傳輸控制協議) 建立連接,形成傳輸數據的通道在連接中進行大數據傳輸(數據大小不受限制)通過三次握手完成連接,是可靠協議,安全送達(三次握手向服務器發送請求,響應請求回復,發送…

Windows和linux雙系統——修改默認啟動順序

電腦上裝了Windows 7和Ubantu雙系統,由于Linux系統用的次數比較少并且還是默認的啟動項對此很不能容忍,因此得修改Windows為默認的啟動項。 由于電腦上的系統引導程序是GRUB,因此修改當然也就落到Linux系統上啦。 修改/boot/grub/grub.cfg該文…

ft232h引腳_usb轉串口芯片 ft232的奇怪現象

硬件平臺:stm32f407ft232RL按照手冊上的電路,我用USB接口給ft232RL供電,如下圖:0288f358ccd0026690b2443b41d98f0f_224.png (0 Bytes, 下載次數: 12)2010-12-14 22:54 上傳我在這個電路的基礎上我用單片機串口和芯片對應的TX和RX相…

微軟Team Foundation Service 的Scrum模板中的Feature和Backlog Items 的區別【轉載】

Features help us plan work better in Team Foundation Service Scrum process 【原文:http://www.nsilverbullet.net/2013/06/04/features-help-us-plan-work-better-in-team-foundation-service-scrum-process/】 Recently a new work item type named “Featur…

LeWeb – 2011 –綜述

在我去機場前幾個小時,我將寫最后一篇與LeWeb相關的文章。 這次,我將專注于會議本身。 參加過幾次開發人員會議(雖然不多,但足以給您帶來一定的經驗),我已經開發了自己的自定義會議等級框架。 我使用以下6條…

Java 入門基礎——面向對象的特征

計算機軟件系統是現實生活中的業務在計算機中的映射,而現實生活中的業務其實就是一個個對象協作的過程。面向對象編程就是按現實業務一樣的方式將程序代碼按一個個對象進行組織和編寫,讓計算機系統能夠識別和理解用對象方式組織和編寫的程序代碼&#xf…

(總結)密碼破解之王:Ophcrack彩虹表(Rainbow Tables)原理詳解(附:120G彩虹表下載)...

http://www.ha97.com/4009.html轉載于:https://www.cnblogs.com/chaizp/p/5111188.html

python游走代碼_介紹一個全局最優化的方法:隨機游走算法(Random Walk)

1. 關于全局最優化求解全局最優化是一個非常復雜的問題,目前還沒有一個通用的辦法可以對任意復雜函數求解全局最優值。上一篇文章講解了一個求解局部極小值的方法——梯度下降法。這種方法對于求解精度不高的情況是實用的,可以用局部極小值近似替代全局最…

iOS單元測試

iOS單元測試異步測試需要建立預期,因為蘋果的單元測試都是同步的,測試到異步的時候建立一個預期,預期如果在規定時間(自定義)完成,代表單元測試通過。 還有 猴子測試 ,就是去github上找到猴子測…