gpt4 book ai didi

build - 用于递归 scons C++ 构建的 VariantDir

转载 作者:行者123 更新时间:2023-12-04 04:37:45 32 4
gpt4 key购买 nike

我想在我写的一个小游戏的构建过程中使用scons。 https://github.com/Dobiasd/Dron

我通常包括通过源目录进行递归,但我不想用 .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_dir 中一样,而不是在 source_dir 中。

Here是对不同问题的回答,应该作为一个很好的例子并且应该有所帮助。

关于build - 用于递归 scons C++ 构建的 VariantDir,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19429732/

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