如何在C ++中链接两个项目

时间:2017-09-29 08:37:29

标签: c++ makefile build cmake gnu

我想用C ++链接两个项目。具体来说,我想从project2中的project1调用一个函数。我已经编写了正确的代码链接这些项目,但我必须链接和Makefile(一起构建)?或不?现在如何建立这些项目?当我打电话给#34; make"在project2中必须调用" make"在project1?

谢谢!

2 个答案:

答案 0 :(得分:0)

我认为你想要的是一个makefile依赖?例如:

在makefile1中:

all:  
    gcc my_file.c -o libMyLib.a

在makefile2中:

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

当您更改projekt1(my_file.c)中的函数并在项目2上调用make时,它会注意到自上次构建project2后my_file.c已更改并再次构建它。

如果project2依赖于project1的结果(即libMyLib.a;而不仅仅是.c - 文件),则需要make他们两者。 您可以从makefile2调用project1上的make,例如:

makefile2:

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

答案 1 :(得分:0)

这两个项目都是“二元”吗?还是“静态”/“动态”图书馆? 如果两个项目都是二进制的,则无法链接它,因为定义了两个“主”函数。

如果两个项目都只是函数定义,则将它们作为共享库,然后使用这些共享库创建新的二进制文件。