2008-11-11 4 views
3

J'essaye d'écrire un programme C qui utilise dlysm, et je continue d'obtenir une référence indéfinie à dlysm. Je pense que j'ai besoin de mettre mes drapeaux -ldl mais je n'ai aucune idée de comment faire cela.Utilisation de dlsym et ajout de -ldl aux indicateurs

Je suis très novice en ce qui concerne les variables Linux. Si c'est ce que je dois faire, quelqu'un peut-il m'aider avec les commandes?

Répondre

1

Transmettez le code -ldl au compilateur.

Exemple:

gcc myprog.c -o app -ldl 
3

-l options de bibliothèque sont utilisées au moment de la liaison.

Si vous compilez un seul fichier source (gcc -o program program.c), vous compilez et liez en même temps. Ajoutez simplement le -ldl.

Si vous compilez plusieurs fichiers objet (*.o), puis que vous les liez ensemble, spécifiez l'option -ldl au lieur (ld).

Voir aussi man ld et man cc

+0

je reçois cette erreur user @ ubuntu8041: ~ $ gcc -Wall -g -o mymalloc mymalloc.c -ldl /usr/lib/gcc/i486-linux-gnu /4.2.4/../../../../lib/crt1.o: Dans la fonction '_start ': (.text + 0x18): référence non définie à' main' collect2: ld a renvoyé 1 sortie état –

+0

Cela signifie que vous n'avez pas défini de fonction main(); la bibliothèque d'exécution nécessite une main pour exécuter votre programme. –

Questions connexes