我在visual studio中有一个名为“Framework”的C项目。
Framework项目应该包含应该在不同项目之间共享的公共代码。
我还有另一个应该使用Framework中代码的项目(让我们称之为A)。
让我们说Framework项目有一个名为DAL.h的头文件,其中包含一个名为OpenFile的函数声明,该函数在DAL.c中实现。
我正在尝试将DAL.h包含到我的A项目中并使用OpenFile但是我收到以下错误:未解析的外部符号_OpenFile
我明白编译器无法找到OpenFile的实现。
我的问题是,在这里描述的案例中,最佳做法是什么?
我应该“添加现有项目”并将DAL.c添加到我的A项目中吗? (这解决了错误..)
我确实尝试将包含DAL.c的文件夹添加到“其他源文件夹”但这没有帮助。
非常感谢, 迈克尔。
答案 0 :(得分:1)
为了使用OpenFile
函数的已编译代码,它需要存在于某处。
您似乎有两种选择:
1)如果您希望编译的代码成为二进制文件的一部分,则需要包含源文件,以便将其编译为项目的一部分。
2)如果你不希望它被构建到你的项目中,并且从它的声音中你没有像你说的那样“应该在不同项目之间共享的公共代码”,“框架项目”应该编译成一个库。在这种情况下,您只需要包含DAL.h头文件,并将“Framework项目”库导入到项目中,以便项目可以将OpenFile
调用链接到库中的实现。