परियोजना मैं संकलन CMake, जो loves absolute pathnames का उपयोग करता हूँ में रिश्तेदार फ़ाइल नाम डाल दिया।मेक जीसीसी डिबग जानकारी
जब मैं डिबगिंग जानकारी सक्षम करता हूं, तो gcc उन लंबे नामों को .debug_str
अनुभागों में रखता है, जो डिबगिंग के लिए खराब है। मैं इसके बजाय वहां छोटे सापेक्ष-से-प्रोजेक्ट-रूट पथनाम रखना चाहता हूं।
वहाँ डीबग डेटा उत्सर्जन से पहले पथ नाम का कुछ हिस्सा पट्टी जीसीसी बताने के लिए कुछ विकल्प है? या, शायद, कुछ उपकरण है जो संकलित बाइनरी पर ऐसा कर सकता है?
मैंने SET(CMAKE_USE_RELATIVE_PATHS ON)
(जो frowned upon देवताओं द्वारा उपयोग किया जाता है) का उपयोग करने का प्रयास किया है, लेकिन जैसा कि मैं आउट-ऑफ-सोर्स बिल्ड का उपयोग कर रहा हूं, पथनाम अभी भी उस रूप में नहीं हैं, जिसे मैं चाहता हूं। अर्थात। वे mod_foo/foo.c
के बजाय ./../src/mod_foo/foo.c
हैं।
'./../ src/mod_foo/foo.c' एक ** सापेक्ष ** पथ है ... –
हाँ, लेकिन प्रोजेक्ट रूट * के सापेक्ष * नहीं, हालांकि (जो' ./ है ../ src') – drdaeman
आपके पास सीएमके के साथ समस्या है, जीसीसी के साथ नहीं। जीसीसी'debug_str' में डालता है ठीक है कि यह कमांड लाइन तर्क के रूप में मिलता है। – sirgeorge