c++ - 如何将 obj 文件添加到 C++ 项目
问题描述
这是关于使用项目属性将 .obj 文件添加到 C++ Win32 项目。网络上有多个关于添加链接器/输入/附加依赖项的路径的参考资料,但这不起作用。
通常在单元测试中提到它,但它与精简控制台项目的行为相同。尝试过 Visual Studios 2019 和 2008。.obj 文件包含一个具有单个公共方法的类。没有外部依赖。
我可以将它直接添加到项目中(就像另一个 .cpp 文件一样),但由于某种原因,所有来源都建议使用项目属性。我错过了一些明显的东西吗?
解决方案
我不明白这个问题是关于什么的,但我想您想将目标代码(.obj)链接到您的构建。
在 C++ 中,我们使用库(.lib 或 .a)作为外部依赖项,它只不过是针对特定操作的许多目标文件的集合。也可以有一个。我们在库中使用许多目标文件只是为了让事情变得简单,否则我们可以选择只使用一个。
库与目标文件
目标文件用于翻译单元,它是在我们编译而不链接时生成的。库用于包含许多相互链接的目标文件的完整项目。目标文件可以用作库,但这不合适。
链接一个库来构建相当于链接它的所有目标代码。因此,您可以选择从命令行手动链接目标代码。您无法从属性页链接目标代码。我不知道您是如何在没有源代码的情况下获得目标代码的,但是有一种方法可以间接添加目标代码。
只需使您的目标代码成为一个库。为此,请打开开发人员命令提示符(您也可以将工具集目录添加到 PATH)。然后通过这个命令
lib /out:library.lib object.obj
现在从属性页面将 library.lib 添加到您的项目中。
推荐阅读
- c# - PCLStorage NuGetPackage 不允许在设备上创建文件夹或文件
- php - PHP CURL GET 请求返回 401 错误(验证失败)
- android - 使用 Room Persistence 从 SQLite 返回的值未分配给 MutableLiveData
- swift - SwiftUI 绑定另一个对象的变量不起作用
- typescript - 使用 NuxtJS 和 AsyncData 方法从 URL 获取查询字符串值
- ffmpeg - 当我用 cygwin 构建 ffmpeg 时,会发生错误。我该如何解决这个问题?
- c# - 如何在c#中获取网站的所有内容而不仅仅是网页
- linux - Cordova wmic 命令失败
- c++ - 关于 SIGTSTP 错误和无休止的输入
- python-3.x - Chessboard-图像处理帧差