【发布时间】:2011-10-31 12:08:13
【问题描述】:
我有一个使用简单通用目录设置的 scons 构建:
project/
SConstruct
src/
file.cpp
SConscript
include/
namespace/
header.h
在 file.cpp 中,我通过 #include "namespace/header.h" 包含 header.h,所以我想要做的只是将包含目录添加到包含路径列表中。从源(和 SConscript)的角度来看,该路径是“../include”,但构建命令中的包含始终具有无效路径。我在 SConscript 中尝试了以下内容:
env.Append(CPPPATH = ["#include"])
env.Append(CPPPATH = [Dir("include")])
env.Append(CPPPATH = [os.getcwd() + os.sep + ".." + os.sep + "include"])
env.Append(CPPPATH = ["../include"])
env.Append(CPPPATH = ["#../include"])
这些似乎都不起作用。前四个给出“-Iinclude”,而最后一个将包含放在项目上方的目录级别!这是完整的 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)。
你有什么想法吗?
【问题讨论】:
标签: scons include-path