将"reference"点添加到静态库项目:仍然需要包含目录
adding "reference" point to a static-library project : still need to include directory
我已经阅读了Microsoft的教程"创建和使用静态库(C++)",并成功遵循了它。
这是虚拟项目:-
B
:静态库项目的名称C
:使用B
的项目的名称
以下是Microsoft指南:-
- 单击
C
中的"添加引用",然后单击B
(简单) - 添加
C
的"其他包含目录"以指向B
的代码文件夹
为什么我必须执行第二步(冗余)?
它会导致一些可维护性问题和乏味,特别是如果我有很多项目。
这是专家所做的吗?
我相信只有第一步就足够了,但经过测试就没有了。
问题:
- 有没有更好的工作流程? 这是什么?
- 如果没有,如何维护包含目录(如果我移动
B
的文件夹)?
搜索SO后,我开始相信没有更好的方法,我必须手动维护它。
步骤 1(">
添加引用")用于链接器,步骤 2("其他包含目录")用于编译器。
确实,IDE 可能足够智能,可以自动操作步骤 2。但是,您不能添加整个B
的代码文件夹以供C
查看。最有可能的是,您的意思是只指向列出B
接口(公共头文件)的文件夹,C
不应该看到B
私有/内部头文件,也不应该看到源代码B
:IDE肯定很难弄清楚它的确切位置,这就是为什么用户应该手动执行此操作。
对于最后一个问题:"专家"所做的是,他们通常不会手动编辑/维护IDE文件,而是通过CMake等工具生成它们。然后,当结构发生变化时,它们只是重新生成项目(sln/vcproj)文件(再次运行CMake)。
相关文章:
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 编译包含字符串的代码时遇到问题
- c++库的公共头文件中应该包含什么
- 将包含C样式数组的对象初始化为成员变量(C++)
- 是否需要删除包含对象的"pair"?
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 使用mongocxx驱动程序时包含头文件问题
- 如何在h文件中包含.o对象文件
- Visual Studio Code "undefined reference to `WinMain@16'"
- 在混合代码库中将C转换为C++时出现许多包含错误
- VS2017,C++包含目录与附加包含目录,子文件夹包含失败-但为什么
- cmath抛出错误C2062、C2059、C2143和C2447.cmath包含在矢量文件中
- C ++引用函数参数似乎包含原始对象的副本,而不是充当"real reference"
- 包含<iostream>时"Undefined reference"错误
- 将"reference"点添加到静态库项目:仍然需要包含目录
- C++'Undefined reference to'错误,尽管包含路径中的头文件中存在函数定义
- 包含的库仍会导致"undefined reference"错误