Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Build 用于递归SCONS C++构建的变量DIR_Build_Scons - Fatal编程技术网

Build 用于递归SCONS C++构建的变量DIR

Build 用于递归SCONS C++构建的变量DIR,build,scons,Build,Scons,我想用scons来构建我写的一个小游戏 我通常通过源目录进行递归,但我不想用.o文件污染src目录。VariantDir应该可以帮助我,但是下面的SConstruct不起作用。o文件仍在。/src import fnmatch import os matches = [] for root, dirnames, filenames in os.walk('src/'): for filename in filenames: if fnmatch.fnmatch(file

我想用scons来构建我写的一个小游戏

我通常通过源目录进行递归,但我不想用.o文件污染src目录。VariantDir应该可以帮助我,但是下面的SConstruct不起作用。o文件仍在。/src

import fnmatch
import os

matches = []
for root, dirnames, filenames in os.walk('src/'):
    for filename in filenames:
        if fnmatch.fnmatch(filename, '*.cpp'):
            matches.append(str(os.path.join(root, filename)))

env = Environment()
env.Append(LIBS = ['sfml-audio', 'sfml-graphics','sfml-window','sfml-system'])
env.Append(LIBPATH = '/usr/local/lib')
env.Append(CXXFLAGS = '-std=c++11 -Wall -Wextra -pedantic -Werror')
env.VariantDir('build', 'src')
env.Program(target = 'Dron', source = matches)
我的期望是:

g++ -o obj/main.o -c -std=c++11 -Wall -Wextra -pedantic -Werror src/main.cpp
汇编现实:

g++ -o src/main.o -c -std=c++11 -Wall -Wextra -pedantic -Werror src/main.cpp

如果有人能告诉我我做错了什么,那就太好了

使用SCons VariantDir函数时,必须引用源文件,就像它们位于variant_目录中,而不是源目录中一样

是另一个问题的答案,这应该是一个很好的例子,应该会有所帮助。

太好了,谢谢。它就像一个符咒。如果您愿意,您可以将您的评论作为答案发布,我将接受