我想用C ++链接两个项目。具体来说,我想从project2中的project1调用一个函数。我已经编写了正确的代码链接这些项目,但我必须链接和Makefile(一起构建)?或不?现在如何建立这些项目?当我打电话给#34; make"在project2中必须调用" make"在project1?
谢谢!
答案 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)
这两个项目都是“二元”吗?还是“静态”/“动态”图书馆? 如果两个项目都是二进制的,则无法链接它,因为定义了两个“主”函数。
如果两个项目都只是函数定义,则将它们作为共享库,然后使用这些共享库创建新的二进制文件。