मैं जोड़ दिया है सब कुछ का उपयोग करते हुए और मैं अपने SConstruct
बदलाव किया है उचित वातावरण चर सेट करने के लिए, इन उत्तरों के अनुसार [1, 2, 3]। अब जब मैं
scan-build --use-c++=`which clang++` scons
चलाने का निर्माण शुरू होता है, और मैं देख सकता हूँ प्रक्रिया scons
द्वारा काँटेदार
/path/to/c++-analyzer ... -std=c++11 ...
वस्तु फ़ाइल सफलतापूर्वक बनाता है, लेकिन फिर मैं कोई त्रुटि मिलती है:
could not find clang line
यह त्रुटि c++-analyzer
में होती है जब फोर्क प्रक्रिया में स्ट्रिंग -cc1
नहीं होती है। लेकिन अगर मैं ps aux
जाँच, मैं स्पष्ट रूप से देख
/path/to/clang -cc1 ...
कैसे कार्यक्रम ठीक से बना सकते हैं, लेकिन स्थिर विश्लेषक इस तरह असफल?
संदर्भ के लिए, यदि मैं मैन्युअल रूप से चलाने के
scan-build clang++ <parameters from scons>
तो निर्माण सफल होता है और रिपोर्ट उत्पन्न होता है!
मैं भी
env["ENV"]["PATH"] = os.environ["PATH"]
जोड़ने और फिर
CXX="scan-build clang++" scons
चल मैं सिर्फ scons
पर ही scan-build
नहीं चल सकता एक असंशोधित SConstruct
साथ द्वारा "धोखा" कर सकते हैं।
आपके प्रश्न का उत्तर पहले से जुड़े उत्तर में दिया गया है: "स्कैन आमतौर पर निर्माण चलाने से पहले पर्यावरण को साफ़ करता है (यह एक विशेषता है)।" –
@ औद्योगिक-एंटीड्रिप्रेसेंट मैं पहले से ही पर्यावरण चर का उपयोग करता हूं जो ग्रेग सुझाता है। मैं क्लैंग और स्कॉन्स के माध्यम से * निर्माण * कर सकता हूं ठीक है; मैं * स्थिर विश्लेषक * नहीं चला सकता। – chrisaycock
हम्म, स्कैन-बिल्ड --use-analyzer =/path/to/clang –