1
我剛開始看scons的使用SCons使用SConscript文件
我創建了一個簡單TEST.CPP
#include <iostream>
int main(int argc, char ** argv) {
std::cout << "Hello World\n";
return 0;
}
,並賦予它一個SConstruct文件時改變編譯
env = Environment()
env.Program(target='Hello', source=['test.cpp'])
並完美編譯
g++ -o test.o -c test.cpp
g++ -o Hello test.o
現在,我這個Sconstruct文件的內容轉移到SConscript文件 並輸入以下內容SConstruct
SConscript('SConscript', variant_dir='.build_release', duplicate=0, exports={'MODE':'release'})
SConscript('SConscript', variant_dir='.build_debug', duplicate=0, exports={'MODE':'debug'})
而且scons的選擇GCC代替G ++
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
scons: building associated VariantDir targets: .build_release .build_debug
gcc -o .build_debug/Hello test.o
Undefined symbols for architecture x86_64:
"std::__1::locale::use_facet(std::__1::locale::id&) const", referenced from:
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in test.o
接着是一頁半更多的錯誤。
如果我用g ++替換gcc並從命令行運行,它可以再次完美工作。
任何人都可以解釋爲什麼它已經從g ++改變爲gcc,我該怎麼辦?
cpp?你的意思是gcc? – 2014-12-04 20:42:13
可能在許多交互環境中使用,但是:刪除在切換到創建SConscript文件之前剩下的test.o文件。或切換到使用重複= 1 – nos 2014-12-04 20:56:47
是的謝謝 - 我的意思是gcc從屏幕味精可以看出。 (將編輯它)。 而且 - 是刪除原來的test.o修復它。 如果你讓它成爲答案,我會相應地標記它。 謝謝。 – 2014-12-05 06:54:04