我想在我写的一个小游戏的构建过程中使用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
如果有人能告诉我我做错了什么,那就太好了。:)