[Wow, what an error, in the makefile] Re: A question for the expert

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sunday 28 December 2003 05:50 pm, Cameron Simpson wrote:
> On 13:56 28 Dec 2003, Robert Brown <eli@xxxxxxxxxxxxxxxx> wrote:
> |  > I ran the command:
> |  > $ gcc -E -C -DRESIN_HOME=\"/usr/resin\" -I -I/usr/kerberos/include
> |  > -I/usr/java/include -I/usr/java/include/linux
> |  > -I../common-DCPU=\"i386\" -DOS= -c -o ssl.o ssl.c > ssl.E
> |  >
> |  >  and Here's the response:
> |  >
> |  > In file included from /usr/include/openssl/ssl.h:179,
> |  >                  from ssl.c:62:
> |  > /usr/include/openssl/kssl.h:72:18: krb5.h: No such file or directory
> |  >
> |  > The file kssl.h is in /usr/include/openssl and it is including
> |  > <krb5.h> but krb5.h is not in /usr/include/openssl.  Here's the exact
> |  > include statement that's causing the problem
>
> [...]
>
> | Eurika!  There's your problem!  The file name is in angle brackets
> | instead of in quotes.  This means that it will be searched for only in
> | system directories, such as /usr/include, and not user supplied
> | directories.  It is only looking for krb5.h in /usr/include of one of
> | its subdirectories.  If you change the angle brackets to  double
> | quotes, it should work.
>
> Sorry, your diagnosis is wrong.
>
> Generally the only difference between
>
> 	#include	<foo.h>
>     and
> 	#include	"foo.h"
>
> is that the latter searches the current directory first, in addition to the
> "usual places". The -I option adds to the "usual places".
>
> The actual source of his problem is this stuff from his compile line:
>
> 	-I -I/usr/kerberos/include
>
> Notice that lone -I option? As with most single-letter options, if they
> take an argument that argument may be abutted to the option or the next
> word, so this:
>
> 	-x foo
>     and
> 	-xfoo
>
> mean "-x" with the argument "foo".
>
> In your case the lone -I is using "-I/usr/kerberos/include" as its
> argument for the same reason, and thus adding a bugus directory named
> "-I/usr/kerberos/include" to the include search path.
>
> The source of this error is probably a bit of make code like this:
>
> 	SOME_HEADER_DIR =
>
> and a compile line going:
>
> 	gcc ....... -I$(SOME_HEADER_DIR) .......
>
> You need to get rid of that lone -I option. First try it by hand:
>
> 	gcc -C -DRESIN_HOME=\"/usr/resin\" -I/usr/kerberos/include
> -I/usr/java/include -I/usr/java/include/linux -I../common-DCPU=\"i386\"
> -DOS=    -c -o ssl.o ssl.c
>
> and see if it behaves. Then find the empty macro in the makefile.
>
> Cheers,
> --
> Cameron Simpson <cs@xxxxxxxxxx> DoD#743
> http://www.cskk.ezoshosting.com/cs/
>
> This disk pack is sold by volume, not by wait.  Crammed full by modern
> automatic computer equipment, it causes full net wait timeouts.  If device
> does not appear full when opened, it is because file contents have been
> lost during transfering.

Hi,
I just saw your response.  I was never very good at nuance of make files.  I 
had done somethings to work around the problem, but now I can fix the make 
file. Thanks for the observation and clearing the matter.  I completed the 
make by copying everything in the directory they were needed.    But I'm 
going to fix the makefile and try again.

Thank you very much.


-- 
redhat-list mailing list
unsubscribe mailto:redhat-list-request@xxxxxxxxxx?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/redhat-list

[Index of Archives]     [CentOS]     [Kernel Development]     [PAM]     [Fedora Users]     [Red Hat Development]     [Big List of Linux Books]     [Linux Admin]     [Gimp]     [Asterisk PBX]     [Yosemite News]     [Red Hat Crash Utility]


  Powered by Linux