OVH Cloud OVH Cloud

erreurs (???) dans headers

31 réponses
Avatar
pere.noel
bon, je continue et ai ajouté comme heaer :

#include "/Developer/Headers/FlatCarbon/Files.h"

car j'utilise :

FSRef theRef;
if (CFURLGetFSRef(url, &theRef)) {
printf("From C => CFURLGetFSRef(url, &theRef)\n");
}

et au make j'ai :

In file included from
/System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.
framework/Headers/OSServices.h:45,
from
/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h
:25,
from /Developer/Headers/FlatCarbon/Files.h:1,
from RAliasFile.c:10:
/System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.
framework/Headers/OpenTransport.h:723: error: parse error before numeric
constant

alors que j'ai positionné :

require 'mkmf'

$CFLAGS << " -I
/System/Library/Frameworks/CoreFoundation.framework/Headers "
$CFLAGS << " -I
/System/Library/Frameworks/CoreServices.framework/Headers "
$CFLAGS << " -I
/System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.
framework/Headers "

$LDFLAGS << " -framework CoreFoundation CoreServices OSServices"

# Give it a name
extension_name = 'raliasfile'

# The destination
dir_config(extension_name)

# Do the work
create_makefile(extension_name)

dans mon "extconf.rb"

je pense d'ailleurs que le "$CFLAGS << " -I
/System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.
framework/Headers "
"
vu ce qui précède...
--
une bévue

10 réponses

1 2 3 4
Avatar
luc
Une bévue wrote:

bon, je continue et ai ajouté comme heaer :

#include "/Developer/Headers/FlatCarbon/Files.h"


Quatrième édition: quand on inclue un header système on utilise les <>,
PAS les "". Et on n'écrit que le nom du header, *sans* son path.

car j'utilise :

FSRef theRef;
if (CFURLGetFSRef(url, &theRef)) {
printf("From C => CFURLGetFSRef(url, &theRef)n");
}


#include <CFURL.h> est suffisant pour tout ça. Oublie une bonne fois
pour toute FlatCarbon.

--
Luc Heinrich

Avatar
pere.noel
Luc Heinrich wrote:

Quatrième édition: quand on inclue un header système on utilise les <>,
PAS les "". Et on n'écrit que le nom du header, *sans* son path.
OK, OK.


car j'utilise :

FSRef theRef;
if (CFURLGetFSRef(url, &theRef)) {
printf("From C => CFURLGetFSRef(url, &theRef)n");
}


#include <CFURL.h> est suffisant pour tout ça. Oublie une bonne fois
pour toute FlatCarbon.


ben ça couine au niveau de FSRef, c'est pourquoi j'ai essayé d'inclure
<Files.h> (non trouvé sans le path) :

RAliasFile.c:34: error: 'FSRef' undeclared (first use in this function)
la ligne 34 étant :
FSRef theRef;

pourquoi je devrais faire qqc en + pour FSRef lors que pour "CFURLRef
url " j'ai + simplement :
CFURLRef url = NULL;

???
--
une bévue


Avatar
Eric Levenez
Le 15/08/06 15:38, dans
<1hk4awx.1gbokkfl7mexnN%, « Une bévue »
a écrit :

???


Tu n'as jamais pensé acheté un petit bouquin sur le C ? Et tu n'as jamais
pensé lire la doc de GCC ?

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.

Avatar
pere.noel
Eric Levenez wrote:


???


Tu n'as jamais pensé acheté un petit bouquin sur le C ? Et tu n'as jamais
pensé lire la doc de GCC ?


si on m'a donné des refs aujourd'hui (le 15 aout)

j'ai le man:gcc ouvert dans Safari...

et aussi il y a une couche intéermédiaire "mkmf"

mais bon, je ne vois pas le lien avec FSRef, je lis de la doc sur c MAIS
la pluspart des pbs rencontrés on peut à voir avec C en lui-même, plus
au fait que c'est un "C-Ruby" et que j'utilise des routines CFURL### et
FileSystem (FSRef).
--
une bévue


Avatar
luc
Une bévue wrote:

ben ça couine au niveau de FSRef, c'est pourquoi j'ai essayé d'inclure
<Files.h> (non trouvé sans le path) :


Rajoute
#include <Carbon/Carbon.h>

--
Luc Heinrich

Avatar
pere.noel
Luc Heinrich wrote:


Rajoute
#include <Carbon/Carbon.h>


ok, merci beaucoup, et donc là je dois ajouter Carbon dans :

$CFLAGS << " -I /System/Library/Frameworks/Carbon.framework/Headers "
$CFLAGS << " -I
/System/Library/Frameworks/CoreFoundation.framework/Headers "
et
$LDFLAGS << " -framework CoreFoundation Carbon" ???

de toutes façonc que je l'ajoute ou pas, c'est nettement mieux mais ça
couine au make :

In file included from
/System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.
framework/Headers/OSServices.h:45,
from
/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h
:25,
from
/System/Library/Frameworks/Carbon.framework/Headers/Carbon.h:20,
from RAliasFile.c:7:
/System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.
framework/Headers/OpenTransport.h:723: error: parse error before numeric
constant

la ligne 7 étant :
#include <Carbon/Carbon.h>

tous mes includes étant :
#include "ruby.h"
#include "RAliasFile.h"
#include <Carbon/Carbon.h>
#include <CFURL.h>


eh au fait ruby.h là c'est bien des "" pas des <> ???

--
une bévue

Avatar
luc
Une bévue wrote:

$CFLAGS << " -I /System/Library/Frameworks/Carbon.framework/Headers "


A priori celui là n'est pas nécessaire, mais je peux me tromper.

$CFLAGS << " -I
/System/Library/Frameworks/CoreFoundation.framework/Headers "


Oui.

$LDFLAGS << " -framework CoreFoundation Carbon" ???


$LDFLAGS << " -framework CoreFoundation"
$LDFLAGS << " -framework Carbon"


#include "ruby.h"
#include "RAliasFile.h"


Il y a quoi dans RAliasFile.h ? Pour une extension Ruby simple comme ça
un header me semble totalement inutile.

#include <Carbon/Carbon.h>
#include <CFURL.h>


eh au fait ruby.h là c'est bien des "" pas des <> ???


<>

--
Luc Heinrich

Avatar
pere.noel
Luc Heinrich wrote:

$CFLAGS << " -I /System/Library/Frameworks/Carbon.framework/Headers "


A priori celui là n'est pas nécessaire, mais je peux me tromper.

$CFLAGS << " -I
/System/Library/Frameworks/CoreFoundation.framework/Headers "


Oui.

$LDFLAGS << " -framework CoreFoundation Carbon" ???


$LDFLAGS << " -framework CoreFoundation"
$LDFLAGS << " -framework Carbon"


#include "ruby.h"
#include "RAliasFile.h"


Il y a quoi dans RAliasFile.h ? Pour une extension Ruby simple comme ça
un header me semble totalement inutile.


beuh, c'était pour faire geek )))

c'est vrai qu'il n'y a pas grand chose :

//
// RAliasFile.h
//


VALUE RAliasFile = Qnil;
VALUE cRAliasFile;
VALUE alias_path;

void Init_raliasfile();

VALUE m_raliasfile_init(VALUE self, VALUE alias_path);
VALUE m_set_alias_path(VALUE self, VALUE alias_path);
VALUE m_alias_path(VALUE self);
VALUE m_orig_path(VALUE self);
VALUE m_is_alias_file(VALUE self);
VALUE m_is_alias_file_broken(VALUE self);
VALUE m_is_folder(VALUE self);
VALUE m_is_data_file(VALUE self);
VALUE m_version(VALUE self);


#include <Carbon/Carbon.h>
#include <CFURL.h>


eh au fait ruby.h là c'est bien des "" pas des <> ???


<>


je suis en train de traduire en (x)html le RUBY.EXT, histoire d'avoir
qqc de + facilement browsable ...

mais bin résultat de la manip (ajouter $LDFLAGS << " -framework Carbon")
:
In file included from
/System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.
framework/Headers/OSServices.h:45,
from
/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h
:25,
from
/System/Library/Frameworks/Carbon.framework/Headers/Carbon.h:20,
from RAliasFile.c:8:
/System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.
framework/Headers/OpenTransport.h:723: error: parse error before numeric
constant

que je mette :
$CFLAGS << " -I /System/Library/Frameworks/Carbon.framework/Headers "
ou pas ne change rien ...

bizarre ça !
--
une bévue


Avatar
luc
Une bévue wrote:

VALUE RAliasFile = Qnil;
VALUE cRAliasFile;
VALUE alias_path;


Je vois à quoi sert cRAliasFile, mais RAliasFile et alias_path me
semblent très suspects :)

void Init_raliasfile();

VALUE m_raliasfile_init(VALUE self, VALUE alias_path);
VALUE m_set_alias_path(VALUE self, VALUE alias_path);
VALUE m_alias_path(VALUE self);
VALUE m_orig_path(VALUE self);
VALUE m_is_alias_file(VALUE self);
VALUE m_is_alias_file_broken(VALUE self);
VALUE m_is_folder(VALUE self);
VALUE m_is_data_file(VALUE self);
VALUE m_version(VALUE self);


Tous ces prototypes sont vraisemblablement totalement inutiles.

mais bin résultat de la manip (ajouter $LDFLAGS << " -framework Carbon")
:
In file included from
/System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.
framework/Headers/OSServices.h:45,
from
/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h
:25,
from
/System/Library/Frameworks/Carbon.framework/Headers/Carbon.h:20,
from RAliasFile.c:8:
/System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.
framework/Headers/OpenTransport.h:723: error: parse error before numeric
constant


Le LDFLAGS n'a aucun rapport avec l'erreur. Mais pour la corriger,
assure toi de mettre le #include <ruby.h> *après* les includes de Carbon
et CFURL.

--
Luc Heinrich

Avatar
pere.noel
Luc Heinrich wrote:

Je vois à quoi sert cRAliasFile, mais RAliasFile et alias_path me
semblent très suspects :)



Aille aille aille..

void Init_raliasfile();

VALUE m_raliasfile_init(VALUE self, VALUE alias_path);
[...]


VALUE m_version(VALUE self);


Tous ces prototypes sont vraisemblablement totalement inutiles.


j'ai supprimé le "#include "RAliasFile.h""


mais bin résultat de la manip (ajouter $LDFLAGS << " -framework Carbon")
:
In file included from
/System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.
framework/Headers/OSServices.h:45,
from
/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h
:25,
from
/System/Library/Frameworks/Carbon.framework/Headers/Carbon.h:20,
from RAliasFile.c:8:
/System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.
framework/Headers/OpenTransport.h:723: error: parse error before numeric
constant


Le LDFLAGS n'a aucun rapport avec l'erreur. Mais pour la corriger,
assure toi de mettre le #include <ruby.h> *après* les includes de Carbon
et CFURL.


Bingo ! ça change tout, plus d'erreur depuis que j'ai mis mon "void
Init_raliasfile()" à la fin de mon *.c (c'est ton mettre <ruby.h> à la
fin + supprimer mes protos qui m'y a fait penser...)


c'est dingue ce changement en déplaçant <ruby.h>...

euh, c'est une question de collision entre nom de constantes/variables
???

il n'y a pas de namespace ???


en tk merci beaucoup, j'aurais pu lire toute la doc de C et de gcc je ne
pense pas que cela m'aurait aidé !
--
une bévue


1 2 3 4