0

プロジェクトをコンパイルしようとしていますが、SCons は glm/glm.hpp を見つけることができません... これは私の SConstruct です:

VariantDir('build', '.')
env=Environment(CPPPATH=['.'], CPPDEFINES=[], LIBS=[], CXXFLAGS="-std=c++0x")
env.Program(target='exec_test', source=[Glob('build/*.cpp'), Glob('build/*.hpp')])

これは出力です:

scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
scons: building associated VariantDir targets: build
g++ -o build/game.o -c -std=c++0x -I. build/game.cpp
g++ -o build/main.o -c -std=c++0x -I. build/main.cpp
g++ -o exec_test build/game.o build/main.o build/game.hpp
build/game.hpp:15:23: fatal error: glm/glm.hpp: No such file or directory
 #include <glm/glm.hpp>
                       ^
compilation terminated.
scons: *** [exec_test] Error 1
scons: building terminated because of errors.

main.cpp 、 game.cpp 、 game.hpp は現在のディレクトリにあり、 glm.hpp は glm/glm.hpp (現在のディレクトリから) にあります。

私は何を間違っていますか?

編集:

いくつかの編集を行ったところ、非常に奇妙なことに気付きました: game.hpp でのみエラーが発生します! また、glm のインクルード行を削除しようとしましたが、一部のコードは c++11 でしか使用できないという警告が表示されました。これは、game.hpp には scons ビルド引数が使用されないことを意味します。また、main.cpp と game.cpp に glm を含めてみましたが、エラーや警告なしでコンパイルされました。game.hpp ファイルについてではなく、SConstruct の引数を使用して .hpp ファイルをビルドしない scons についてだと思います。

4

1 に答える 1

1

コンパイル時にソース リストにヘッダー ファイルを含めないでください。Program()次のように呼び出しを変更することを検討してください。

env.Program(target='exec_test', source=[Glob('build/*.cpp')])
于 2013-10-21T05:53:52.773 に答える