是否可以编译c / c ++混合源代码?

时间:2017-07-28 01:40:06

标签: c++ c gcc makefile g++

我们有一个c项目,想要将一个c ++项目组合到这个c项目中,并将它们编译成一个二进制文件,是否可能?

类似

cproject/src/
cproject/src/a.h
cproject/src/a.c
cproject/src/b.h
cproject/src/b.c
cproject/src/main.c

添加cppproject

cproject/cppproject/src/c.h
cproject/cppproject/src/c.cpp
cproject/cppproject/src/m.h
cproject/cppproject/src/m.cpp

可能将cpp编译为分片库并链接它吗?

1 个答案:

答案 0 :(得分:0)

是的,你可以。你说你在C中有一个项目,在C ++中有另一个项目。 但你解决的方式(“分片库和链接它?”)是另一回事。

正如其他人所说,你可以:

1)混合使用C和C ++(小心使用 extern“C”

2)使用子项目创建项目(在Xcode for Mac中是将项目添加到现有项目的标准做法

3)确保只有一个main()

4)你想要做一个外部的lib,不需要混合它们,但是如果你没有经验,暴露方法,管理包含和链接选项以及传递参数可能有点复杂。

Libs和DLL与普通的“main()”程序非常不同。