gpt4 book ai didi

c++ - 如何使用 SCONS/CPPPATH : Source not found

转载 作者:太空狗 更新时间:2023-10-29 21:44:34 24 4
gpt4 key购买 nike

我正在使用 Scons/Sconstruct 构建具有以下目录结构的项目:

+A
|--A1
|--A2
+B
|--B1
|-b1.cpp

“A”目录包含 B1 中的构造文件引用的代码,如下所示构造文件(此处简化使用):

env = Environment(CPPPATH=['.', '../../']
source_common = 'A/A1/source.cpp'
env.Program( target = 'b1_exec', source = ['b1.cpp', source_common] )

但是,在编译时,我收到无法找到 A/A1/source.cpp 的错误。我原以为添加 CPPPATH 参数会让编译器找到 source.cpp 文件。我似乎在兜圈子,所以非常感谢任何帮助。

谢谢。

最佳答案

使用 SCons 构建时要记住的首要规则之一是要构建的源代码必须与根级 SConstruct 脚本位于同一目录/子目录中。您可以考虑以下几种选择:

  1. 将SConstruct放在A和B的根目录下,控制两个子目录的构建。

  2. 让每个目录(A 和 B)成为独立的项目,并且每个目录都有自己的 SConstruct。那么项目 B 将引用项目 A 中单独构建的库。

选择仅取决于项目的性质和您的要求。选项 2 的缺点是,如果 A1 或 A2 中的源文件发生更改,编译项目 B 时将不会检测到它,因为项目 B 只会知道项目 A 中的库/头文件。

关于CPPPATH 构造变量:此变量配置头文件的位置。如果此项目在 Linux(或其他 Unix 变体)上使用 gcc/g++ 编译器,则 CPPPATH 变量配置“-I”编译器标志。请记住,在设置 CPPPATH 变量时,不必包含“-I”标志,SCons 将以独立于平台的方式添加它(这意味着它将根据所使用的平台和编译器进行设置)。

关于c++ - 如何使用 SCONS/CPPPATH : Source not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19726994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com