Re: gmake og #include

From: Mic J (none@michael.cognacc--gmail.com.lh.bsd-dk.dk)
Date: Sat 28 Aug 2010 - 13:47:54 CEST


Date: Sat, 28 Aug 2010 13:47:54 +0200
Subject: Re: gmake og #include
From: Mic J <none@michael.cognacc--gmail.com.lh.bsd-dk.dk>
To: bsd-dk@bsd-dk.dk

2010/8/27 Jette Derriche <none@bsd-dk--nerdgirl.dk.lh.bsd-dk.dk>:
> On Fri, 2010-08-27 at 13:18 +0200, Tony Albers wrote:
>> 27. aug. 2010 13.05 skrev Jette Derriche <none@bsd-dk--nerdgirl.dk.lh.bsd-dk.dk>:
>> > Jeg forsøger at bygge noget software med gmake, og det er ikke noget jeg
>> > har særlig erfaring med... Lige nu sidder jeg og hiver mig selv i håret
>> > over noget #include halløj der ikke fungerer... I hvert fald siger gmake
>> > at nogle filer ikke findes, selvom de gør...
>> >
>> > I Makefile kan jeg definere stien til mysql lib og mysql include filer,
>> > og disse stier har jeg rettet så de passer:
>> >
>> > 19 # Mysql lib directory
>> > 20 # exemple: <path>/mysql-5.1.41/libmysql_r/.libs
>> > 21 MYSQL_LIB := /usr/local/lib
>> > 22
>> > 23 # Mysql include directory
>> > 24 # exemple: <path>/mysql-5.1.41/include
>> > 25 MYSQL_INC := /usr/local/include
>> >
>> > Den starter så med at inkludere my_global.h
>> > fra /usr/local/include/mysql, og det fungerer fint. Men my_global.h
>> > inkluderer så igen my_config.h som også ligger
>> > i /usr/local/include/mysql, men den kan gmake ikke finde.
>> >
>> > Jeg kender intet til C-programmering, så jeg har forsøgt at finde noget
>> > om hvordan #include fungerer... jeg fandt følgende:
>> >
>> >
>> > --------------------------------------------
>> > #include <stdio.h>
>> > This form instructs the preprocessor to search for include files first
>> > along the path specified by the /I compiler option, then, when compiling
>> > from the command line, along the path specified by the INCLUDE
>> > environment variable.
>> > --------------------------------------------
>> >
>> > Jeg aner ikke hvad /I compiler er, men jeg kan da finde ud af at sætte
>> > en environment variabel:
>> >
>> > # setenv INCLUDE "/usr/local/lib;/usr/local/include"
>> >
>> > Men den kan stadig ikke finde my_config.h
>> >
>> > Der er tydeligvis et eller andet her jeg misser... men hvad?
>> >
>> >
>> > /Jette
>> >
>> >
>>
>> Skal der være kolon(:) efter MYSQL_LIB ?
>>
>
> Ja, altså jeg ved ikke hvad det kolon betyder, men den bruger i hvert
> fald stien, for hvis jeg ændrer den, fejler gmake tidligere end den gør
> nu...
>
>> Prøv med:
>>
>> MYSQL_LIB = /usr/local/lib
>>
>
> Det giver samme resultat:
>
> In file included from mysac.c:24:
> /usr/local/include/mysql/my_global.h:84:23: error: my_config.h: No such
> file or directory
> /usr/local/include/mysql/my_global.h:619:26: error: my_attribute.h: No
> such file or directory
> /usr/local/include/mysql/my_global.h:655:21: error: my_dbug.h: No such
> file or directory
>
>
> /Jette

hmm.

my_config.h bliver sikkert lavet af configure scriptet, først.
(HAVE_X, HAVE_Y HAVE_NCURSES etc). de andre fejl har jeg ikke lige
nogen mening om..

Jeg kunne forstille mig den leder efter my_config.h i samme directory
som du kompilerer fra eller måske include | src/include fra der hvor
du kompilerer, et check i config.log skulle bekræfte det.

mic



This archive was generated by hypermail 2b30 : Tue 31 Aug 2010 - 23:00:00 CEST