2017-09-29 14 views
1

Je veux lier deux projets en C++. Plus précisément, je veux appeler une fonction de project1 dans project2. J'ai écrit le code correct pour lier ces projets mais je dois lier et Makefiles (pour construire ensemble)? Ou pas? Comment construire ce projet maintenant? Quand j'appelle "make" dans project2, il faut appeler "make" dans project1?Comment lier deux projets en C++

merci!

Répondre

0

Je pense que ce que vous voulez est une dépendance de makefile? Par exemple:

dans makefile1:

all: 
    gcc my_file.c -o libMyLib.a 

dans makefile2:

all: my_file.c 
    gcc main2.c -o MyProg.exe 

Lorsque vous modifiez la fonction dans votre Projekt1 (my_file.c) et appelez make sur votre Projet2 il remarquerez que my_file.c a changé depuis la dernière version de project2 et le reconstruire.

Si le projet 2 dépend du résultat du projet 1 (c'est-à-dire libMyLib.a, et pas uniquement du fichier .c), vous devez les indiquer tous les deux. Vous pouvez simplement appeler make sur project1 de makefile2, par exemple:

makefile2:

all: libMyLib.a 
    $(MAKE) all -C /path/to/project1 
    gcc main2.c -o MyProg.exe 
0

Les deux projets sont "binaires"? ou bibliothèque "statique"/"dynamique"? Si les deux projets sont binaires, vous ne pouvez pas le lier car deux fonctions "principales" sont définies. Si les deux projets ne sont qu'une définition de fonction, créez-les en tant que bibliothèque partagée, puis créez un nouveau fichier binaire à l'aide de ces bibliothèques partagées.

+0

le projet a deux principaux (l'un pour l'autre), mais je veux appeler seulement la fonction du second projet sans la fonction principale. – Christ