繁体   English   中英

如何使用SCONS / CPPPATH:找不到来源

[英]How to use SCONS/CPPPATH: Source not found

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

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

'A'目录包含B1中的sconstruct文件所引用的代码,根据以下scontruct文件(在此处简化使用):

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM