2014-05-09 3 views
5

मैं एक CMakeLists.txt में जीएनयू जी ++ के कंपाइलर और लिंकर के लिए gprof झंडे कैसे सेट करूं?cmake का उपयोग कर g ++ के झंडे कैसे सेट करें, जैसे कि gprof demangle कर सकते हैं?

मेरे वर्तमान दृष्टिकोण,

set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -pg") 
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -pg") 
set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} -pg") 

gprof सी ++ कार्यों demangle की अनुमति नहीं है। कोई विचार? (मैं सी ++ 11 उपयोग कर रहा हूँ)

+0

सभी कि एक समारोह demangle लिए है समारोह नाम ही, आप नहीं अतिरिक्त ग्राम ++ झंडे AFAIK मदद करने के लिए जोड़ सकते हैं की जरूरत है। –

उत्तर

5

उपयोग करके देखें:

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pg") 
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg") 
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -pg") 

कि संकलन और लिंक, और के बाद निष्पादित प्रोग्राम का उपयोग करने झंडे जोड़ना होगा:

gprof ./my_exe 

आप एक मिलता है त्रुटि की तरह:

gmon.out: No such file or directory 

कि संकलन जानकारी propertly रूपरेखा नहीं जोड़ा था, इसका मतलब है कि।

यहाँ घटनाओं की श्रृंखला के रूप में निम्नानुसार काम करने के लिए माना जाता है:

1º Compile code with -pg option 
2º Link code with -pg option 
3º Run program 
4º Program generates gmon.out file 
5º Run gprof 
संबंधित मुद्दे