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

From: lappin (galaxylappin_at_optonline.net)
Date: 12/29/03

  • Next message: Simon Tneoh Chee-Boon: "How to flush old IP from eth0 after IP alias?"
    To: redhat-list@redhat.com
    Date: Sun, 28 Dec 2003 21:52:31 -0500
    
    

    On Sunday 28 December 2003 05:50 pm, Cameron Simpson wrote:
    > On 13:56 28 Dec 2003, Robert Brown <eli@typhoon.xnet.com> 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@zip.com.au> 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@redhat.com?subject=unsubscribe
    https://www.redhat.com/mailman/listinfo/redhat-list
    

  • Next message: Simon Tneoh Chee-Boon: "How to flush old IP from eth0 after IP alias?"