當前位置:首頁 » 編程軟體 » scons編譯

scons編譯

發布時間: 2022-05-28 10:27:37

1. 能不能只使用G++這一個程序來編譯源文件

CreateProcess是WIn內核的函數。
你使用的是MinGW G++編譯器:
如果你在程序中隱式使用了這個函數,請確保鏈接器引用到了MinGW組件W32API的庫文件kernel32.a。
如果你在程序中顯示使用了這個函數,請確保包含里MinGW組件W32API的頭文件<windows.h>,以及鏈接器引用到了MinGW組件W32API的庫文件kernel32.a。
如果你使用的不是MinGW的G++編譯器:
你可以嘗試引用MinGW的W32API庫或微軟的Platform SDK庫,參考以上兩條(kernel32.a->kernel32.lib)。
以上或許答非所問。現在回答「僅僅用G++.EXE來編譯」的問題:對MinGW G++,如果你只有g++.exe一個文件,你大概可以成功編譯不依賴任何外部庫的程序,你無法鏈接因為g++不是鏈接器(做鏈接器時引用ld)且大部分情況下都會有外部庫的依賴。

2. 如何將scons工具集成到python

在Windows或者linux下,SConstruct文件相當於MakeFile,使用SCONS編譯,需輸入scons.bat(scons),後面帶上編譯選項options(如SConstruct所在的路徑)。觀察scons.bat這個腳本,可以在其他Python代碼中,將SCONS工具當作一個函數來調用。這個函數就是Scons.Script.main(),這個main函數將解析命令行中的編譯選項,通過sys.argv[1:]來傳入。所以只需修改這個函數,就可以以函數的方式調用,不需要通過如Popen等方式在代碼中啟動scons。
先找到SCONS安裝的目錄,如C:\\Python27\Scons-2.3.1包,將Scons\Script\Main.py中main()函數聲明中,添加一個傳入參數,變為:
def main(args_):
同時將_exec_main(Parser,Values)聲明,也變為:
__exec_main(args_,Parser,Values)
然後main(args_)通過調用__exec_main(args_,Parser,Values),將參數傳給__exec_main,在__exec_main中再將sys.argv[1:]替換為args.split().
修改完Main.py之後,執行如下,實現替換二進制源文件(Main.pyc):
>>import py_compile
>>py_compile(r『C:\\Python27\\Scons-2.3.1\\Scons\\Script\\Main.py『)

使用如下代碼測試:
>>import os
>>import sys
>>sys.path=[os.path.join(sys.prefix,『Scons-2.3.1『)]+sys.path
>>import Scons.Script
>>Scons.Script.main(『.『)
Scons工具正常使用。

3. win下怎樣編譯mongodb

  Mongodb 是採用 Scons 來構建的。Scons是一個Python寫的自動化構建工具,從構建這個角度說,它跟GNU make是同一類的工具。所以要編譯MongoDB的C語言驅動,不僅要有C/C++開發環境,而且還要有Python環境及Scons庫。
  編譯環境:Windows 2008 + Visual Studio 2010 + Python 2.7 + SCons 2.3.0;其中Python編譯器主要有兩個版本(2.7和3.x),請務必安裝Python2.7,因為SCons2.3.0僅支持Python2.x編譯器,並且Python2.7是當前使用最為廣泛的版本。
  下載地址:
Python2.7 http://www.python.org/download/releases/2.7.5/
SCons2.3.0 http://www.scons.org/
Mongo-c-driver https://github.com/mongodb/mongo-c-driver(GitHub託管)
  假設當前操作系統上已經配置了C/C++開發環境(Visual Studio 2010);首先安裝Python2.7,安裝目錄默認為C:/Python27;然後安裝Scons2.3.0,安裝Scons2.3.0時會自動檢測Python安裝目錄,並將安裝到Python中的Scripts目錄;增加環境變數: C:\Python27 與 C:\Python27\Scripts 到PATH;編譯環境搭建完畢。
  下載mongo-c-driver並解壓,在「命令提示符」(DOS模擬環境cmd.exe)下進入到mongo-c-driver的解壓目錄,例如解壓到C盤根目錄,則路徑為C:\mongo-c-driver-master;在C:\mongo-c-driver-master>提示符下,輸入SCons –m32 –c99回車即可;編譯完成後會在mongo-c-driver目錄中生成兩個動態鏈接庫bson.dll和mongoc.dll,以及相應的bson.lib和mongoc.lib。
  註:在開發程序進行編譯時,需要在項目屬性中配置「C/C++「->「預處理器定義」,預定義四個宏MONGO_HAVE_STDINT,MONGO_HAVE_UNISTD,MONGO_USE__INT64,MONGO_USE_LONG_LONG_INT;在"VC++目錄」->「包含目錄"中,添加C:\mongo-c-driver-master\src目錄,包含mongo-c-driver頭文件目錄;在"鏈接器」->「輸入」->「附加依賴項"中,添加bson.lib和mongoc.lib庫,鏈接mongo-c-driver庫,即可編譯程序。

4. 怎樣將scons調用外部程序生成的代碼文件加入編譯列表中

比較好的方法是使用makefile. 首先安裝make工具, 運行make -v, 如果正常返回版本信息就說明已經裝好了。
然後在代碼的目錄里新建一個名為makefile的文本文件,

5. 如何編譯opencontrail-vrouter

1. 安裝依賴。
2. 建立sandbox,也就是隨便建立一個文件夾即可,我是使用了contrail-build這個文件夾,因為其中有SConstruct文件。
3. 按照contrail-build/README.md中的文件夾結構下載相應的組件,例如third_party就去下載contrail-third-party,contrail估計很久沒人維護了,build不是很好做。
4. 全部按照文件夾結構下載完成後,先要去third_party中fetch第三方庫。
5. 最後在根目錄運行scons即可。我那邊把controller注釋掉了,因為編譯那個總是提示「虛擬內存不足」。

6. scons 怎麼忽視某個.c文件

介紹,scons用的是python語法。需要安裝python和scons後才能運行,能夠跨平台。比較automake自動生成makefile文件,scons可以認為直接是make的功能,因為只需要執行scons命令就等於執行了make的功能。
現在有一個hello.c的文件。
新建一個SConstruct文件,是一個python腳本文件。
Program('hello.c') 編譯hello.c並生成.o文件和可執行文件
Object('hello.c') 編譯hello.c但只生成生成.o文件
這兩個方法都是python的method。
如果想執行clean操作,我們不需要再象makefile那樣指名make clean語句,而是直接執行scons -c 或者scons -clean就可以。程序會根據SConstruct文件內容自動清除。

SConstruct的讀取和執行順序是彼此獨立的,直接看以下例子。
SConstruct文件內容:
print "Calling Program('hello.c')"
Program('hello.c')
print "Calling Program('goodbye.c')"
Program('goodbye.c')
print "Finished calling Program()"

7. 如何編譯scons release 源碼

找不到libQtGui.so這個庫,添加環境變數LIBRARY_PATH=/opt/Qt4.7/lib試試另外你使是用arm-linux-gcc編譯程序,需要保證QT下的libQtGui.so庫也是用arm-linux-gcc編譯的,否則編譯鏈接會出問題

8. scons怎麼編譯別的文件夾 ubuntu

因為SCons是用Python編寫的,所以你必須在使用SCons之前安裝好Python。你在安裝Python之前,應該注意查看Python是否在你的系統里已經可用了(在系統的命令行中運行python -V或python --version)。
$python -V
Python 2.5.1
在一個Windows系統里,
C:\>python -V
Python 2.5.1
如果Python沒有安裝,你會看到一條錯誤消息比如「command not found」(在UNIX或Linux里)或"python is not recognized as an internal or external command, operable program or batch file"(在Windows里)。在這種情況下,在你安裝SCons之前需要先安裝Python。
有關下載和安裝Python的信息可以從http://www.python.org/download/得到。

2、從預編譯包中安裝SCons
2.1、在Red Hat(或者基於RPM)Linux系統里安裝SCons
在使用RPM(Red Hat Package Manager)的Red Hat Linux,Fedora或者任何其他Linux發行版里,SCons是預編譯好的RPM格式,准備被安裝的。你的發行版可能已經包含了一個預編譯好的SCons RPM。
如果你的發行版支持yum安裝,你可以運行如下命令安裝SCons:
#yum install scons
如果你的Linux發行版沒有包含一個特定的SCons RPM文件,你可以下載SCons項目提供的通用的RPM來安裝。這會安裝SCons腳本到/usr/bin目錄,安裝SCons庫模塊(library moles)到/usr/lib/scons。
從命令行安裝,下載合適的.rpm文件,然後運行:
#rpm -Uvh scons-2.1.0-1.noarch.rpm

2.2、在Debian Linux系統里安裝SCons
如果你的系統已經連上了網際網路,你可以運行如下命令來安裝最新的官方Debian包:
#apt-get install scons

2.3、在Windows系統里安裝SCons
SCons提供了一個Windows installer,使得安裝變得非常容易。從http://www.scons.org/download.php下載scons-2.1.0.win32.exe。然後你需要做的就是執行這個文件。

3、在任何系統里編譯和安裝SCons
如果你的系統里沒有一個預編譯的SCons包,你可以使用本地python distutils包很容易地編譯和安裝SCons。
第一步就是下載scons-2.1.0.tar.gz或scons-2.1.0.zip,地址http://www.scons.org/download.html。
解壓下載的文件,會創建一個叫scons-2.1.0的目錄,進入這個目錄執行如下命令安裝SCons:
#cd scons-2.1.0
#python setup.py install
這將會編譯SCons,安裝scons腳本到python目錄(/usr/local/bin或C:\Python25\Scripts),同時會安裝SCons編譯引擎到python使用的庫目錄(/usr/local/lib/scons或C:\Python25\scons)。因為這些都是系統目錄,你可能需要root或管理員許可權去安裝SCons。

3.1、編譯和安裝多個版本的SCons
SCons的setup.py腳本有一些擴展,這些擴展支持安裝多個版本的SCons到不同的位置。這讓下載和體驗不同版本的SCons變得很容易。
安裝SCons到指定版本的位置,調用setup.py的時候增加--version-lib選項:
#python setup.py install --version-lib
這將會安裝SCons編譯引擎到/usr/lib/scons-2.1.0或C:\Python25\scons-2.1.0目錄。

3.2、安裝SCons到其他的位置
你可以安裝SCons到其他的位置,而不是默認的位置,指定--prefix=選項:
#python setup.py install --prefix=/opt/scons
這將會安裝scons腳本到/opt/scons/bin,安裝編譯引擎到/opt/scons/lib/scons。
你可以同時指定--prefix和--version-lib,這個時候setup.py將會安裝編譯引擎到相對於指定prefix的特定版本的目錄,在剛才的例子上加上--version-lib,將會安裝編譯引擎到/opt/scons/lib/scons-2.1.0。

3.3、沒有管理員許可權的情況下編譯和安裝SCons
如果你沒有許可權安裝SCons到系統目錄,使用--prefix選項安裝到你選擇的其他的位置。例如,安裝SCons到相對於用戶$HOME目錄的合適的位置,scons腳本安裝到$HOME/bin,編譯引擎安裝到$HOME/lib/scons,使用如下命令:
#python setup.py install --prefix=$HOME

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:649
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:940
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:635
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:824
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:734
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1069
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:302
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:163
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:855
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:766