2017-10-21 113 views
2

J'essaie de faire un appel système dans Ubuntu 12.04.1. Je reçois une erreur de compilation mon fichier hello.c:J'essaie de faire un appel système dans Ubuntu 12.04.1. Je cours une erreur en compilant mon fichier hello.c

#include <linux/kernel.h> 
asmlinkage long sys_hello(void) { 
    printk("hello world\n"); 
    return 0; 
} 

Il montre l'erreur:

error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘long’ asmlinkage long sys_hello(void)

+3

"un problème" est quelque peu léger car la description du problème ... – fvu

+0

Vous rencontrez "un problème". Quel genre de problème avez-vous? Un message d'erreur spécifique? Est-ce que votre code invoque des pleurs impies de défunts? –

+0

erreur: attendu '=', '', '', 'asm' ou '__attribute__' avant 'long' asmlinkage longue sys_hello (void) ^ ~~~ @RobertColumbia –

Répondre

0

Je suppose que vous essayez de construire un module de noyau. Vous devez le faire dans le système de compilation du noyau. Vous ne pouvez pas le compiler en tant qu'application régulière ou objet partagé. Le plus simple est probablement de patcher le module dans l'arborescence du noyau Ubuntu et de le construire en utilisant these instructions.

0

I'm trying to make a system call in Ubuntu 12.04.1.

En supposant que vous voulez dire que vous essayez de créer un appel système: les modules du noyau ne peuvent pas ajouter des appels système. Tous les appels système doivent être compilés dans le noyau.