c++ - vs 2017 静态库“没有这样的文件或目录”
问题描述
我在将自定义静态库导入项目时遇到问题。我的库与我试图包含它的项目在同一个解决方案中。
在项目属性的 VC++ 目录部分,我放了“$(SolutionDir);” 在包含目录和“$(SolutionDir)Debug\;”中 在图书馆目录中。据我了解,“$(SolutionDir);” 是定义根目录的宏吗?由于库与项目共享相同的解决方案,因此它也共享相同的根目录,并且创建的 .lib 文件位于根目录的 Debug 文件夹中。
在链接器/输入部分,我放了“GameEngine.lib;” 在附加依赖项中。“GameEngine.lib”是根目录Debug文件夹中.lib的文件名。
当我尝试从库中包含任何内容时,它甚至在编写时都不会将其识别为存在:
#include <GameEngine/Rendering/Model.h>
按照下面的方式进行操作表明它实际上可以找到文件,这意味着路径存在并且是正确的,但是这样做会出现链接器错误。
#include "../GameEngine/Rendering/Model.h"
我正在使用 Visual Studios 2017。
GitHub 仓库链接:https ://github.com/TheHoester/OpenGLGameEngine.git
谢谢
解决方案
您需要确保为所有构建配置设置目录。您只为“x64”平台设置了包含目录,因此无法构建“Win32”平台。将目录添加到“Win32”平台后,您的项目将正确构建。
请注意,更常见的是使用“VC++ 目录”作为系统包含和库,并使用“C/C++/General/Additional Include Directories”和“C/C++/Linker/General/Additional Library Directories”链接到您自己的图书馆。我知道使用“VC++ 目录”设置没有任何问题,只要确保不要修改其中的任何现有路径。
推荐阅读
- angular - Angular 2:自定义管道破坏
- gradle - Intellij Idea 上的一个模块中缺少 Gradle 多模块项目 Source Sets
- javascript - 如何在javascript中的RSA-OAEP算法中使用publicExponent作为65537
- java - 两个java日期之间的区别
- mysql - 实体框架 (MySQL) - 使用两个 dbcontexts 将数据从一个数据库移动到另一个数据库
- c++ - 更好的单元测试方法,耗时太长
- sql - 使用序列插入
- javascript - 如何解析excel中的列以将其转换为JSON
- javascript - 单击外部时隐藏弹出窗口
- javascript - 获取 XML 数据的 API 返回未定义