Je suis en train de faire un programme NESC à utiliser avec TOSSIM (simulateur de TinyOS), y compris la bibliothèque gmp Voici un échantillon de mon codeNESC/GMP Undefined Symbole
event void Boot.booted()
{
//dbg("MAPC", "Booted\n");
//int g = 2;
const char * const num = "10387922662657137735272585565990678424704150824246588991894422884684285337052622755228646547137908394766337363629003511269209591656314972254747436173398683";
int err;
mpz_t n;
err = mpz_init_set_str(n, num, 10);
dbg("MAPC","%d",sizeof(n));
mpz_clear(n);
}
La compilation fonctionne très bien à l'aide make micaz sim
ou env "CFLAGS = -lgmp" make micaz sim
Lorsque je tente de l'exécuter via un script python je reçois cette erreur:
Traceback (most recent call last):
File "kdk.py", line 4, in <module>
from TOSSIM import *
File "/opt/tinyos-2.1.2/apps/MAP/TOSSIM.py", line 7, in <module>
import _TOSSIM
ImportError: /opt/tinyos-2.1.2/apps/MAP/_TOSSIMmodule.so: undefined symbol: __gmpz_init_set_str
Mon Makefile contient les deux lignes suivantes: 'component = MAPAppC comprennent' $ (MAKERULES) donc je suppose qu'il ya une autre makefile, y compris tout le reste. Est-ce que je peux ajouter mes LDFLAGS à ceux déjà utilisés? – Crownless
@Crownless cela dépend du makefile, il peut avoir des variables spéciales à cet effet, par exemple. EXTERNAL_LIBRARIES, il devrait y avoir quelques docs – pmod
J'ai utilisé LDFLAGS, il n'a rien écrasé, la position -lgmp est passée à ce qu'elle devrait être, mais j'ai toujours cette erreur, merci beaucoup pour la réponse, cependant. – Crownless