2010-09-15 122 views
3

我努力嘗試,但無法找到使用SCons(或任何構建系統)的示例,在boost和gcc上使用gcc和mvC++構建。跨平臺構建使用SCons升級

目前我SConstruct看起來像

env = Environment() 
env.Object(Glob('*.cpp')) 
env.Program(target='test', source=Glob('*.o'), LIBS=['boost_filesystem-mt', 'boost_system-mt', 'boost_program_options-mt']) 

在Linux上哪些工作,但與Visual C++與2010年開始沒有讓你指定全局include目錄不一樣。

+0

爲什麼不直接使用生成系統升壓自帶(bjam的)? – 2010-09-15 19:34:40

+0

@BillyONeal問題是關於構建一個依賴於Boost的程序,而不是構建Boost本身。問題標題是誤導性的。 – JBentley 2014-04-12 00:55:52

回答

3

你需要這樣的東西:

import os 

env = Environment() 
boost_prefix = "" 
if is_windows: 
    boost_prefix = "path_to_boost" 
else: 
    boost_prefix = "/usr" # or wherever you installed boost 
sources = env.Glob("*.cpp") 
env.Append(CPPPATH = [os.path.join(boost_prefix, "include")]) 
env.Append(LIBPATH = [os.path.join(boost_prefix, "lib")]) 
app = env.Program(target = "test", source = sources, LIBS = [...]) 
env.Default(app) 
+0

我明白了,我認爲SCons對這個問題有一個更優雅的解決方案,但我想它只能做很多。令人討厭的是MSVC++會自動鏈接依賴關係,但windows沒有pkg-config。我不確定哪些是需要顯式鏈接指令的gcc工具鏈或需要顯式庫路徑的vC++。 – Novikov 2010-09-15 23:30:20