<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">hi you guys<br>I just spent some time on libclang, and wrote a test programme, but i met some problems. <br><br>The test programme is as follows:<br><br>//clang_test.cpp<br>#include <clang-c/Index.h><br>#include <ctype.h><br>#include <stdlib.h><br>#include <stdio.h><br>#include <string.h><br><br>int test( int argc, char** argv )<br>{<br>    CXIndex Index = clang_createIndex( 0, 0 );<br>    CXTranslationUnit TU = clang_parseTranslationUnit( Index, 0, argv, argc, 0, 0, CXTranslationUnit_None );<br><br>    for( unsigned I=0, N=clang_getNumDiagnostics( TU ); I<N; ++I )<br>    {<br>        CXDiagnostic Diag = clang_getDiagnostic( TU, I );<br><br>        CXString String = clang_formatDiagnostic( Diag,
 clang_defaultDiagnosticDisplayOptions() );<br>        fprintf( stderr, "Diag: %s\n", clang_getCString( String ) );<br>        clang_disposeString( String );<br>    }<br><br>    clang_disposeTranslationUnit( TU );<br>    clang_disposeIndex( Index );<br>    return 0;<br>}<br>int main( int argc, char** argv )<br>{<br>    test( argc, argv );<br><br>    return 0;<br>}<br><br>When I ran the programme on a .h file,  i got the following results:<br><br>Diag: ../ckit/ckit_comm.h:28:1: error: unknown type name 'bool'<br>Diag: ../ckit/ckit_comm.h:32:1: error: unknown type name 'bool'<br>Diag: ../ckit/ckit_comm.h:43:1: error: unknown type name 'bool'<br>Diag: ../ckit/ckit_comm.h:51:5: error: conflicting types for 'createTranslationUnit'<br>Diag: ../ckit/ckit_comm.h:47:5: note: previous declaration is
 here<br><br>The ckit_comm.h :<br>/* @(#)ckit_comm.h<br> */<br><br>#ifndef _CKIT_COMM_H<br>#define _CKIT_COMM_H 1<br><br>#include "clang-c/Index.h"<br><br>/*<br>  CXCursor遍历时所用visitor函数的数据类型<br> */<br>struct VisitorData<br>{<br>    CXTranslationUnit TU;<br>    enum CXCursorKind *Filter;<br>};<br><br>extern char* g_szTUDir;<br>extern char** g_szCommandArgs;<br>extern int g_nCommandArgsNum;<br><br>/*<br>  判断文件或者目录是否存在.<br>  返回值:<br>  true:存在<br>  false:不存在<br> */<br>bool isExist(const char* szFileName);<br>/*<br>  获取文件最后修改时间<br> */<br>bool getFileStamp(const char* szFileName, time_t* iStamp);<br>/*<br>  比较两个文件的最后修改时间,比较结果保存到pnResult中。<br>  比较结果含义:<br>  0:相等<br>  -1:szFile1文件时间早<br> 
 1:szFile2文件时间早 <br>  返回值:<br>  false:比较失败<br>  true:比较成功,将比较结果保存到pnResult中.<br> */<br>bool checkFilesStamp(const char* szFile1, const char* szFile2, int* pnResult);<br>/*<br>  创建文件对应的编译单元(基本无用版)<br> */<br>int createTranslationUnit(const char* szFileName, CXTranslationUnit* piTU);<br>/*<br>  创建文件对应的编译单元<br> */<br>int createTranslationUnit(const char* szFileName, int nArgs, char** szArgs, CXTranslationUnit* piTU);<br>/*<br> */<br>int loadTranslationUnit(const char* szFileName, CXTranslationUnit* piTU);<br>/*<br> */<br>int loadTranslationUnitFromSource(const char* szFileName, CXTranslationUnit* piTU);<br>/*<br>  将TU写到输出文件中<br> */<br>int saveTranslationUnit(CXTranslationUnit TU, const char* szTUDir);<br><br>#endif /* _CKIT_COMM_H */<br><br>But if I renamed ckit_comm.h to
 ckit_comm.hpp and ran again, everything was ok. <br><br>Is it my mistake or clang's feature? <br>Thand you<br><br>PS.<br>My os is debian sid i386, clang version is r120773 checked from svn.<br>Sorry for my pool english.<br></td></tr></table><br>