我有使用簡單,常見的目錄設置一個scons的構建路徑的指令:scons的產生不正確包括在建
project/
SConstruct
src/
file.cpp
SConscript
include/
namespace/
header.h
在file.cpp,包括我header.h通過的#include「命名空間/頭.h「所以我想要做的只是將include目錄添加到包含路徑列表中。從源碼(和SConscript)的角度來看,該路徑是「../ include」,但build命令總是包含一個無效路徑。我在SConscript中試過以下內容:
env.Append(CPPPATH = ["#include"])
env.Append(CPPPATH = [Dir("include")])
env.Append(CPPPATH = [os.getcmwd() + os.sep + ".." + os.sep + "include"])
env.Append(CPPPATH = ["../include"])
env.Append(CPPPATH = ["#../include"])
其中沒有一個看起來可行。前四項給出「-Iinclude」,而最後一項將include包含在項目上方的目錄級別!下面是完整的SConscript
env = Environment()
import os
target_name = "device"
source_files = Split("""
file.cpp
""")
env.Append(CPPPATH = ["#include", os.environ.get("SYSTEMC_PATH"),
os.environ.get("SYSTEMC_TLM_PATH"), os.environ.get("BOOST_PATH")])
object_list = env.SharedObject(source = source_files)
targetobj = env.SharedLibrary(target = target_name, source = object_list)
Default(targetobj)
而且SConstruct就是:
import sys
SConscript('src/SConscript', variant_dir='Release-'+sys.platform, duplicate=0, exports={'MODE':'release'})
SConscript('src/SConscript', variant_dir='Debug-'+sys.platform, duplicate=0, exports={'MODE':'debug'})
,我從其中SConstruct所在的目錄(即頂級目錄)scons的。
我已經做了一些尋找和根據scons doco,#應該告訴scons從SConscript(這是src目錄)的當前目錄生成路徑 - 我假設這是SConstruct目錄的?此外,我看不出有關這個特定問題的任何問題(在本網站或通過谷歌),通常我只是打人要求scons腳本完全我已經得到的設置(這是添加「包含」到CPPPATH)。
任何想到這裏會出錯的想法?
TIA,
-J
謝謝TJD。你的回覆讓我回頭仔細看目錄結構,發現我有一個錯字......和原始文章中的相同的打字錯誤(我之前已經修復過),包含目錄是拼寫錯誤的「 unclude」。我的哎呀...我最近不斷收到這些問題,所以我的眼鏡處方時間得到檢查methinks! – greenbutterfly