Re: A question for the expert

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

 



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.


-- 
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