This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: cygwin cross compiler expects DOS paths for include directories, etc.


Thanks Dan for the info.  I've ran the command using the --verbose option,
and its definitely searching DOS paths to find include files/etc.


Where is this information set inside the gcc compilation??  I thought that
cygwin would handle paths at the "last stage" before opening the file,
rather than GCC being compiled in a set of DOS paths as its search
locations??  Any ideas??


Could I remove the DOS_SEPERATOR define inside the config/xx-cygwin32
files??  I dont understand that gcc is using dos pathname seperators
internally.


$ arm-epoc-pe-g++ dialog.cpp -I/opt/symbian/UIQ_21/include --verbose
Reading specs from
c:\cygwin\opt\symbian\UIQ_21\bin\..\lib\gcc-lib\arm-epoc-pe\2.9-psion-98r2\s
pecs
gcc version 2.9-psion-98r2 (Symbian build 546)

c:\cygwin\opt\symbian\UIQ_21\bin\..\lib\gcc-lib\arm-epoc-pe\2.9-psion-98r2\c
pp.exe -lang-c++ -v -I/opt/symbian/UIQ_21/include -iprefix
c:\cygwin\opt\symbian\UIQ_21\bin\..\lib/gcc-lib/arm-epoc-pe\2.9-psion-98r2\ 
-undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=9 -Darm -D__
pe__ -D__declspec(x)=__attribute__((x)) -D__arm__ -D__pe__ -D__declspec(x)=_
_attribute__((x)) -D__arm -Acpu(arm) -Amachine(arm) -D__EXCEPTIONS -D__CHAR_
UNSIGNED__ -D__ARM_ARCH_4T__ -D__APCS_32__ dialog.cpp
/cygdrive/c/DOCUME~1/ADMINI~1/LOCALS~1/Temp\ccAtCGUw.ii
GNU CPP version 2.9-psion-98r2 (Symbian build 546) (ARM/EPOC/PE)
#include "..." search starts here:
#include <...> search starts here:

c:\cygwin\opt\symbian\UIQ_21\bin\..\lib\gcc-lib\arm-epoc-pe\2.9-psion-98r2\i
nclude

c:\cygwin\opt\symbian\UIQ_21\bin\..\lib\gcc-lib\arm-epoc-pe\2.9-psion-98r2\.
.\..\..\..\arm-epoc-pe\include
End of search list.
In file included from dialog.cpp:1:
dialog.h:3: eikdialg.h: No such file or directory
dialog.cpp:6: eikchlst.h: No such file or directory


I can always "hack" the specs file to include the DOS path directory to the
Symbian SDK includes, but this is not cross-platform when I try and compile
using the same makefile under Linux.


Cheers,

Ben

-----Original Message-----
From: Dan Kegel [mailto:dank@kegel.com]
Sent: Monday, January 19, 2004 4:50 PM
To: ben_bodley@hotmail.com
Cc: crossgcc@sources.redhat.com
Subject: Re: cygwin cross compiler expects DOS paths for include
directories, etc.


Ben Bodley wrote:
> Hello,
> $ arm-epoc-pe-g++ dialog.cpp -I/opt/symbian/UIQ_21/include
> In file included from dialog.cpp:1:
> dialog.h:3: No include path in which to find eikdialg.h
> dialog.cpp:6: No include path in which to find eikchlst.h
>
> However, if I use DOS pathnames in my include directory:
>
> $ arm-epoc-pe-g++ dialog.cpp -Ic:/cygwin/opt/symbian/UIQ_21/include
> In file included from c:\cygwin\opt\symbian\UIQ_21\include\e32std.h:1305,
>                  from c:\cygwin\opt\symbian\UIQ_21\include\coeccntx.h:10,
>                  from c:\cygwin\opt\symbian\UIQ_21\include\eikdialg.h:10,
>                  from dialog.h:3,
>                  from dialog.cpp:1:
> c:\cygwin\opt\symbian\UIQ_21\include\e32des16.h:301: #error no typedef for
> __TText

That's a puzzle, isn't it?

I usually solve icky problems like this by doing things like running g++
with
the --verbose flag to see what it's doing in more detail
and/or by running it under strace -o foo.log
and then doing
  grep -i eikdialg.h foo.log
to see what happened when it tried to open the file.

You might also check the case of the filename and the permissions on the
file.
- Dan


------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]