2011-01-14 210 views
1

如何在SCons中指定二進制/可執行文件目錄?這很容易做到如下:SCons二進制目錄

Program(target = 'bin/helloworld', source = 'src/helloworld.cc') 

這種方法的問題是試圖做跨平臺的構建時。下面是一個可用的示例:

StaticLibrary(target = 'helloworld', source = 'src/helloworldlib.cc') 

這在Unix系統上的輸出是一個名爲libhelloworld.a的庫。它不工作示例如下:

StaticLibrary(target = 'lib/helloworld', source = 'src/helloworldlib.cc') 

這在Unix系統上的輸出是在lib目錄文件helloworld.a。當LIBS被指定爲['helloworld']時會導致問題,這是跨平臺的方式。

將參數名稱傳遞到StaticLibrary,SharedLibrary和Program中以將二進制文件輸出到基目錄以外的目錄中是什麼?

回答

1

manual建議您在源目錄中使用變體目錄和SConscript文件。在你的榜樣,放置一個SConscript文件中src目錄:

StaticLibrary(target="helloworld", source="helloworldlib.cc") 

,並呼籲從主SConstruct文件:

SConscript("src/SConscript", variant_dir="lib") 
+0

變不控制這一點。這取決於SCon *文件的位置。 – Jonathan 2011-01-14 21:23:50