我有一个应用程序项目(MyGame
)在同一个解决方案中使用/调用我的静态库(MyLib
): -
MySol\
- MyLib (static library) use "external"
- MyGame (win32 app) use "MyLib"
从上图中,MyLib
需要一个未由我编码的外部库
外部标头位于D:\external\
。
这是一个正确的设置,使一切正常: -
MyLib
' 其他包含目录 = D:\external\;
MyGame
' 其他包含目录 = D:\MySol\MyLib\;D:\external\;
请注意,我必须在两个项目中添加其他包含目录 = D:\external\;
。
当我有很多项目时,现实生活中一团糟 (繁琐,难以维护,容易出错和肮脏)
Property sheet可以缓解这个问题,但不能彻底治愈。
我希望我能尽快将其包括在内: -
MyGame
' 其他包含目录 = D:\MySol\MyLib\;
< - no" external"啊!由于项目MyGame
无法访问\external
中的标题,因此无法对其进行编译。 (无意义,为什么不自动化?)
将MyLib
添加到MyGame
' Reference(解决方案资源管理器)并没有帮助。
如何自动吸收 其他包含目录 ({{ 1)})静态库项目(MyGame
)?
答案 0 :(得分:1)
正如你现在发现的那样,属性表通常是让这样的事情部分自动化的简单方法(另一种方式是像VcPkg这样的包管理,但就我而言尚未正确建立知道,并不像创建单个文件那样简单,只需点击几下就可以将其添加到项目中。
在这种情况下:创建一个属性表,将d:\ external添加到AdditionalIncludeDirectories
并在需要它的所有项目中导入工作表。此外,如果您不使用pragma进行自动链接和/或库不在所有项目已知的公共位置,您可以将库搜索路径和库本身添加到属性表中的链接器输入以获取编译器和链接器快乐。