2009-11-14 5 views
2

A partir de la ligne de commande, je reçois un nom de fichier que je dois compiler en utilisant gcc. permet de dire c'est comme ça.Compilation du programme dans un autre programme en utilisant gcc

./a.out fileToBeCompiled.c 

Puis comment je peux compiler ce fichier en utilisant gcc dans mon programme? disons main.c pour lequel a.out est en train de se faire.

+0

Sans bombardement: http://programmers.stackexchange.com/questions/189949/-there-a-way-to-use-gcc-as-a-library –

Répondre

2

Vous pouvez toujours appeler gcc pour compiler à partir d'une commande d'exécution de shell dans votre programme.

Reference to the system function.

+0

Merci, ça marche pour moi. – itsaboutcode

+0

Utiliser le système est une mauvaise idée, mais si cela fonctionne pour sonaboutcode, ça ira pour moi –

4

gcc Just exec de l'intérieur vous programme.

int main(int argc, char** argv) 
{ 
    execv("/usr/bin/gcc", argv); 
} 
1

savoir comment appeler fork(), exec() et wait(). Vous voulez probablement utiliser execv() à cette fin.

0
./a.out fileToBeCompiled.c && gcc fileToBeCompiled.c 

Si ./a.out échoue (il renvoie autre chose que 0) gcc ne sera pas appelé

0

simple, vous pouvez utiliser la fonction « système » (défini à l'intérieur stdio.h) pour exécuter la commande unix à l'intérieur des programmes c, C++.

Par exemple: Je vais compiler sub.c à l'intérieur main.c

void main(void) 
{ 
    system("cc sub.c -o sub"); 
} 

Vous pouvez spécifier les entrées dynamiques et les fichiers de sortie.

Questions connexes