- Oliv,
Bonsoir,
suite à une modification / optimisation d’un code qui fonctionnait, la premi_re commande gcc échoue :
+---< oliv@droopy >---< ~/Coding/BBB/Check >
+---> zcc -o k2k *
/usr/bin/ld: error: k2k:1: unknown directive: gpchC013=
>>> gpchC013=�#�����RVy�w=�:+__DBL_MIN_EXP__ (-1021)
__FLT_MIN__ 1.17549435e-38F&
>>> ^
collect2: ld returned 1 exit status
+---< oliv@droopy >---< ~/Coding/BBB/Check >
+---> zcc -o k2k *
+---< oliv@droopy >---< ~/Coding/BBB/Check >
La seconde réussi.
Voici les arguments passés à gcc :
gcc -Wall -Wextra -pedantic -std=c89 -fno-common -fno-builtin
A savoir, que si j’opte pour : gcc -Wall -Wextra -pedantic -std=c99 -fno-common -fno-builtin Je ne rencontre pas d’erreurs.
- Je suis content de coder à la norme c99 !
- Je vous entends dire… Tu as le droit de compiler en std c99
Néanmoins, je ne souhaite pas mourir bête quelqu’un saurait m’expliquer ?
la partion de code ci-dessous que l’on trouve ici
void
digitalWrite(char *gpioId, char *gp_name, int action)
{
int devfd = -1;
char *dev;
char devn[32];
struct gpio_pin_op op;
/* mount & open the device dev : /dev/gpiox */
dev = gpioId;
if (strncmp(_PATH_DEV, dev, sizeof(_PATH_DEV) - 1))
{
(void)snprintf(devn, sizeof(devn), "%s%s", _PATH_DEV, dev);
dev = devn;
}
if ((devfd = open(dev, O_RDWR)) == -1)
err(1, "%s", dev);
/* Write the action */
if (action < 0 || action > 2)
errx(1, "%d: invalid action", action);
memset(&op, 0, sizeof(op));
a été remplacé par ceci :
void
digitalWrite(char *gpioId, char *gp_name, int action) {
int devfd = -1;
struct gpio_pin_op op;
/* mount & open the device dev : /dev/gpiox */
openGpioDevice(gpioId, &devfd);
/* Write the action */
if (action < 0 || action > 2)
errx(1, "%d: invalid action", action);
memset(&op, 0, sizeof(op));
if (gp_name != NULL)
strlcpy(op.gp_name, gp_name, sizeof(op.gp_name));
op.gp_value = (action == 0 ? GPIO_PIN_LOW : GPIO_PIN_HIGH);
if (action < 2) {
ioctl(devfd, GPIOPINWRITE, &op);
} else {
ioctl(devfd, GPIOPINTOGGLE, &op);
}
/* To close file descriptor fd */
close(devfd);
}
fonction:
int
openGpioDevice(char *gpioId, int *pdevfd) {
char *dev;
char devn[32];
dev = gpioId;
if (strncmp(_PATH_DEV, dev, sizeof(_PATH_DEV) - 1)) {
(void)snprintf(devn, sizeof(devn), "%s%s", _PATH_DEV, dev);
dev = devn;
}
*pdevfd = open(dev, O_RDWR);
return 0;
}
Merci.
+0
-0