[cfe-dev] fatal error: 'stdarg.h' file not found

Pedro Delgado Perez pedro.delgadoperez at mail.uca.es
Fri Mar 7 10:38:54 PST 2014


 
Hi Jordan,

My tool wasn't in the "/usr/local/bin" directory, I didn't know that. I have copied the executable to the directory and have worked without any problem.
My headers are in ../include/clang/3.x/include/ not in lib/clang.

Thanks!

I also have another issue with headers and I hope you don't mind to have a look if it's not much asking.

In the program I'm parsing with Clang, the headers are of type angled <parent_directory/file.h>.To compile the program I can use "clang++ -I. -I.. " so that the headers are found. But, in my tool I don't know how can I indicate that clang includes the parent directory when creating the AST.

I'm using something like this to parse the code:
 ...
 ClangTool Tool(OptionsParser.getCompilations(), file); 
 Tool.run(newFrontendActionFactory(&mytool));
...
so I would need to tell the object "Tool" to find also in the parent directory. Or is there a simple way to do this that I'm overlooking?

Thanks again,

Pedro.

El día 07 mar 2014 18:43, Jordan Rose <jordan_rose at apple.com> escribió:
> 
> On Mar 7, 2014, at 4:28 , Pedro Delgado Perez <pedro.delgadoperez at mail.uca.es [ mailto:pedro.delgadoperez at mail.uca.es ]> wrote:
> 
>> 
>> Hi,
>> 
>> I think I have a problem with my Clang installation. I know that this problem is not new, but I don't know how can I solve it in spite of reading some forums with the same issue. When I run my tool, I got the following error:
>> 
>>> ...
>>> In file included from /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../include/c++/4.6/string:42:
>>> In file included from /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../include/c++/4.6/bits/char_traits.h:42:
>>> In file included from /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../include/c++/4.6/bits/postypes.h:42:
>>> In file included from /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../include/c++/4.6/cwchar:46:
>>> /usr/include/wchar.h:40:11: fatal error: 'stdarg.h' file not found
>>> # include <stdarg.h>
>>> ...
>>> 
>> Clang is not searching in "/usr/local/lib/clang/3.4/include", where, for instance, the library "stdarg.h" is located. This is the result when executing "clang++ -v":
>> 
>> clang version 3.4 (192773)
>> Target: x86_64-unknown-linux-gnu
>> Thread model: posix
>> Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.6
>> Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.6.3
>> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.6
>> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.6.3
>> Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.6
>> 
>> 
>> Therefore, the directory of clang is not being search isn't it?. Does anybody know how can I solve this problem in an easy way? I have no broad knowledge of Clang.
>> 
>> Thanks in advance,
>> 
>> Pedro.
>> 
> Just to sanity check, is your tool in /usr/local/bin? Clang looks for these headers relative to the location of the binary.
> Also, between the 3.4 and 3.5 releases, the headers moved to ../include/clang/3.x/include/, instead of lib/clang/... Maybe you picked up that commit by mistake?
> Jordan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140307/80219078/attachment.html>


More information about the cfe-dev mailing list