自动将"Additional include directory"添加到静态库的用户
automatic add "Additional include directory" to user of a static library
我有一个应用程序项目(MyGame
)在同一解决方案中使用/调用我的静态库(MyLib
):-
MySol
- MyLib (static library) use "external"
- MyGame (win32 app) use "MyLib"
从上图中,MyLib
需要一个不是由我编码的外部库。
外部标头驻留在D:external
中。
工作配置(传统)
这是一个正确的设置,使一切正常:-
MyLib
的附加包含目录=D:external;
MyGame
的附加包含目录=D:MySolMyLib;D:external;
请注意,我必须将"其他包含目录=D:external;
"添加到这两个项目中。
当我有很多项目时,在现实生活中是一团糟。
(繁琐、难以维护、容易出错且肮脏)
属性表可以稍微缓解问题,但不能完全解决问题。
梦幻配置
我希望我能尽快包括:-
MyGame
的附加包含目录=D:MySolMyLib;
<-- 没有"外部"是的!
这无法编译,因为项目MyGame
无法访问external
中的标头。 (废话,为什么不自动化?
将MyLib
添加到MyGame
的引用(解决方案资源管理器)中无济于事。
问题
如何使静态库项目(MyGame
)的用户自动吸收静态库项目(MyLib
)的附加包含目录(external
)?
相关问题
- 可以对链接器做这样的事情,但我找不到有关其他包含目录的任何设置。
- 这是一个相关的问题,但它主要问"为什么",所有解决方案都建议我必须手动完成。 (真的吗?
正如您现在发现的那样,属性表通常是使此类内容部分自动化的简单方法(另一种方法是例如像 VcPkg 这样的包管理,但据我所知,这(尚未)正确建立,并且不像创建单个文件并通过几次单击将其添加到项目中那么容易)。 在这种情况下:创建一个属性表,将 d:\external 添加到AdditionalIncludeDirectories
,并将该表导入到所有需要它的项目中。此外,如果您不使用杂注进行自动链接和/或库不是所有项目都知道的公共位置,则可以将库搜索路径和库本身添加到属性表中的链接器输入中,以使编译器和链接器都满意。
相关文章:
- 添加静态constexpr成员是否会更改结构/类的内存映射
- 如何在友元函数中使用静态成员而不添加前缀 [类名]::
- 如何将 libjpeg-turbo Android NDK 添加为静态库
- 将在堆栈上声明的元素添加到静态数组
- const_cast静态数组以添加恒常性
- 静态堆栈函数不会 1) 输入第一个元素 2)添加新元素时识别旧元素
- 如何将对象添加到类中的静态向量
- 如何从C++而不是虚幻编辑器中添加静态网格体组件的值?
- ctypes,添加静态库时未定义的符号
- 如何使用 PHP-CPP 在 PHP 类中添加静态数组
- 尝试向 COM 对象添加另一个接口时出现静态强制转换错误 C2440
- C++将静态多态类自添加到子类的 constexpr 列表中
- 静态断言添加操作是否可用
- iOS:添加静态库后C++应用大小太大
- 如何在构造函数的静态列表中添加对象
- 静态2D数组,添加元素
- MSBuidel - 将资源文件添加到项目后静态库编译失败
- 如何添加其他CMAKE模块的静态LIB
- 向模板化静态成员初始化添加和不添加'typename'都会出错
- 检测来自C 的静态添加的QML儿童