Nc_nowrite
Discutez d'informatique ici !
-
rattlesnake
- Membre Naturel
- Messages: 29
- Enregistré le: 15 Aoû 2014, 15:01
-
par rattlesnake » 30 Oct 2014, 16:40
Bonjour a vous,
On m'a demandé de compiler un code et de l'executer dans le cadre d'un projet, seulement j'obtiens les lignes d'erreurs ci-dessous :
- Code: Tout sélectionner
AUXFunc.c: In function ReadNetCDF:
AUXFunc.c:25: error: NC_NOWRITE undeclared (first use in this function)
AUXFunc.c:25: error: (Each undeclared identifier is reported only once
AUXFunc.c:25: error: for each function it appears in.)
AUXFunc.c:25: error: NC_NOERR undeclared (first use in this function)
AUXFunc.c: In function ReadNetCDF_int:
AUXFunc.c:52: error: NC_NOWRITE undeclared (first use in this function)
AUXFunc.c:52: error: NC_NOERR undeclared (first use in this function)
make: *** [AUXFunc.o] Erreur 1
L'endroit du code concerné étant :
- Code: Tout sélectionner
#include "AUXFunc.h"
float max(float a, float b)
{
return( a>=b? a : b );
}
float min(float a, float b)
{
return ( a>=b? b : a );
}
void CheckMemAllocationError(void *InVar, const char *InVarName)
{
if (InVar==NULL)
{
printf("Error Allocating Memory: %s\n",InVarName);
exit(-1);
}
}
void ReadNetCDF(float * InVar, char *InVarName, char *filePath)
{
int ncid,varid;
if (nc_open(filePath,NC_NOWRITE,&ncid)!=NC_NOERR)
{
printf("\n Error: Can not open %s.nc.\n",InVarName);
exit(-1);
}
else
{
if ( nc_inq_varid(ncid,InVarName,&varid)!=NC_NOERR )
{
printf("\n Error: Can not find %s variable in the file.\n",InVarName);
exit(-1);
}
else
{
printf("Reading %s:\n",InVarName);
if(nc_get_var_float(ncid,varid,InVar)!=NC_NOERR)
{
printf("\n Fatal Error: Can not read %s.\n",InVarName);
exit(-1);
}
}
}
}
Pourriez-vous m'eclairer sur ce qui pose problème?
Merci d'avance !
-
Cliffe
- Membre Rationnel
- Messages: 967
- Enregistré le: 12 Juin 2012, 14:25
-
par Cliffe » 30 Oct 2014, 16:55
il doit te manquer un include non ?
-
rattlesnake
- Membre Naturel
- Messages: 29
- Enregistré le: 15 Aoû 2014, 15:01
-
par rattlesnake » 30 Oct 2014, 17:19
Merci pour ta réponse,
En effet un include était commenté dans le header, mais ça n'a rien changé en terme d'erreur
(#include )
-
ampholyte
- Membre Transcendant
- Messages: 3940
- Enregistré le: 21 Juil 2012, 08:03
-
par ampholyte » 30 Oct 2014, 23:35
Bonjour,
Essaye plutôt :
- Code: Tout sélectionner
#include "netcdf.h"
Est-ce que le fichier netcdf.h se trouve au même endroit que les autres sources ?
Est-ce que tu as bien rajouté toutes les SRCS dans le makefile si tu en as un ?
-
rattlesnake
- Membre Naturel
- Messages: 29
- Enregistré le: 15 Aoû 2014, 15:01
-
par rattlesnake » 10 Nov 2014, 14:12
Merci pour vos réponses,
au fait c'est tout bête, le chemin pour les librairies spécifié dans le makefile était incorrect ... j'ai corrigé ça, et j'ai du coup moins d'erreurs :
La seule qui reste est la suivante :
- Code: Tout sélectionner
undefined reference to `__ctype_b'
Je me suis alors renseigné pour savoir ce que c'était (apparement une histoire de patchs), mais je n'arrive pas à avancer plus avec les résultats google ... quelqu'un sait ce à quoi cela est dû et comment régler le problème?
Merci d'avance
-
rattlesnake
- Membre Naturel
- Messages: 29
- Enregistré le: 15 Aoû 2014, 15:01
-
par rattlesnake » 10 Nov 2014, 14:13
J'ai aussi essayé d'ajouter le patch au main (je ne sais pas si c'est ce qu'il faut faire) mais on m'affiche :
- Code: Tout sélectionner
patch: **** Only garbage was found in the patch input.
-
ampholyte
- Membre Transcendant
- Messages: 3940
- Enregistré le: 21 Juil 2012, 08:03
-
par ampholyte » 10 Nov 2014, 14:49
Est-ce que ce ne serait pas une version de glibc qui ne serait pas à jour ?
De quel patch parles-tu ?
-
rattlesnake
- Membre Naturel
- Messages: 29
- Enregistré le: 15 Aoû 2014, 15:01
-
par rattlesnake » 11 Nov 2014, 14:33
J'ai parlé de patch parce que j'ai vu parmi les résultats google que ctype_b.c était un patch, mais je n'en sais finalement pas plus que ça pour le moment ...
Sinon j'ai également trouvé que ça pouvait en effet être dû à une glibc trop récente. Je continue mes recherches, mais si vous avez des idées je suis preneur :)
-
fatal_error
- Modérateur
- Messages: 6610
- Enregistré le: 22 Nov 2007, 13:00
-
par fatal_error » 11 Nov 2014, 15:21
quelles commandes utilises tu pour compiler?
quelle version de gcc (ou bien g++?)
la vie est une fête
-
rattlesnake
- Membre Naturel
- Messages: 29
- Enregistré le: 15 Aoû 2014, 15:01
-
par rattlesnake » 12 Nov 2014, 11:19
Pour ce qui est de compiler, j'utilise la commande make, vu que je dispose d'un makefile avec à l'intérieur (entre autre) :
- Code: Tout sélectionner
TARGET=SEBS
CC=gcc
NETCDFDIR=~/Desktop/Mutlu_ozdogan/SEBS/Landsat_version/
NETCDFINC=$(NETCDFDIR)
NETCDFLIB=$(NETCDFDIR)
CFLAGS=-O3 -I$(NETCDFINC)
LINKFLAGS=-lm -L $(NETCDFDIR) -lnetcdf
[...]
Main.o: Main.c Constants.h
$(CC) -c $(CFLAGS) Main.c
etc.
Pour ce qui est de la version de gcc, c'est :
gcc (Debian 4.3.2-1.1) 4.3.2
-
rattlesnake
- Membre Naturel
- Messages: 29
- Enregistré le: 15 Aoû 2014, 15:01
-
par rattlesnake » 12 Nov 2014, 12:55
Et pour ce qui est de la version de glibc :
ldd (GNU libc) 2.7
J'ai vu sur un site qu'apparemment, au delà de la version 2.3 on peut avoir ce problème ...
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités