2

私が書いた小さなゲームのビルド プロセスに scons を使用したいと考えています。https://github.com/Dobiasd/Dron

私は通常、ソース ディレクトリの再帰を含めて作業しますが、src ディレクトリを .o ファイルで汚染したくありません。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

誰かが私が間違っていることを教えてくれたらうれしいです。:)

4

1 に答える 1

3

SCons VariantDir() 関数を使用する場合、source_dir ではなく、variant_dir にあるかのようにソース ファイルを参照する必要があります。

これは、別の質問に対する回答です。これは、良い例として役立ち、役立つはずです。

于 2013-10-18T13:53:33.570 に答える