所以我很确定我的设计/设置有问题。但基本上在visual studio中,我想创建一个松散地包装第三方代码的.lib项目,这部分很简单。
但是我发现当我在我的其他项目中使用lib时(在这种情况下是一个dll,可能很容易成为另一个项目中的exe等),dll项目抱怨它需要相同的include目录lib项目。这似乎......没有用。 我知道它显示消息的原因,因为我从我的lib中包含了一个标题,反过来包括第三方包含文件......
对此有更好的设计建议吗?或者更好的方式来链接visual studio中的2个项目。
我的消费者dll,确实引用了我的lib的include目录,并且我添加了项目作为参考,因此也应该设置lib输出。
帮助可视化
第三方代码 - >我的包装器lib - >我的dll消费者。
看起来我的消费者代码应该包含我的包装器项目要抽象出来的相同头文件。
答案 0 :(得分:0)
我在lib中添加了一个标题,其中包含第三方包含文件...
这就是问题所在,当然如果您尝试包含该标头,无论是直接还是间接通过另一个标头,它都需要该标头。
您应该为您的lib用户生成一个新标题,其中包含仅您向用户公开的函数,并且不包含任何其他函数或其他标题。你试图包装的内部函数。然后,您的lib的用户可以只包含此标头,该标头将包含他们需要的所有定义。