我無法使用libclang解析C++中名稱空間函數的正文。使用libclang解析名稱空間函數
我有一個命名空間中的一類,像這樣:
namespace outer {
namespace inner {
class MyClass {
public:
short myMethod(){
return NTOHS(10);
}
short anotherMethod();
};
short MyClass::anotherMethod(){
return NTOHS(11);
}
short myFunction(){
return NTOHS(12);
}
}
}
使用的libclang一個Python包裝,我可以找到通過遞歸的每個節點:
def find_node(node):
print node # Just print stuff about the node (spelling, location, etc.)
for child in node.get_children():
find_node(child)
我能夠檢測出使用的NTOHS的myMethod
和myFunction
並打印有關這些節點的信息,但無法在MyClass::anotherMethod
中檢測到它。這裏
Someone else ran into a similar problem, but it doesn't seem to have been answered.
ntohs和僅僅是用於將網絡主機爲了在Linux/Unix命令。
如何在命名空間函數中使用libclang來檢測NTOHS?
你確定你在'anotherMethod'的* definition *節點而不是之前的* declaration *嗎? –
@KurtStutsman我很確定我可以找到聲明,但不是定義。 –