【问题标题】:How to add obj file to C++ project如何将 obj 文件添加到 C++ 项目
【发布时间】:2021-10-27 00:56:24
【问题描述】:

这是关于使用项目属性将 .obj 文件添加到 C++ Win32 项目。 网络上有多个关于添加链接器/输入/附加依赖项的路径的参考资料,但这不起作用。

通常在单元测试中提到它,但它与精简控制台项目的行为相同。尝试过 Visual Studios 2019 和 2008。.obj 文件包含一个具有单个公共方法的类。没有外部依赖。

我可以将它直接添加到项目中(就像另一个 .cpp 文件一样),但出于某种原因,所有来源都建议使用项目属性。我错过了什么明显的东西吗?

【问题讨论】:

    标签: c++ windows visual-studio unit-testing


    【解决方案1】:

    我不明白这个问题是关于什么的,但我想您想将对象代码 (.obj) 链接到您的构建。

    在 C++ 中,我们使用库(.lib 或 .a)作为外部依赖项,它只不过是针对特定操作的许多目标文件的集合。也可以有一个。我们在库中使用许多目标文件只是为了让事情变得简单,否则我们可以选择只使用一个。

    库与目标文件

    对象文件用于翻译单元,它是在我们编译时不链接时生成的。库用于包含许多相互链接的目标文件的完整项目。对象文件可以用作库,但这不合适。

    链接一个库来构建相当于链接它的所有目标代码。因此,您可以选择从命令行手动链接目标代码。您无法从属性页链接目标代码。我不知道您是如何获得没有源代码的目标代码的,但是有一种方法可以间接添加目标代码。

    只需将您的目标代码变成一个库。为此,请打开开发人员命令提示符(您还可以将工具集目录添加到 PATH)。然后通过这个命令

    lib /out:library.lib object.obj
    

    现在从属性页面将 library.lib 添加到您的项目中。

    【讨论】:

    • 我知道 lib 文件,问题不在于那个。而且,要添加 .obj 文件,您只需将其拖放到解决方案资源管理器窗格中即可。问题是,为什么在地球上每个人都建议使用项目属性,这显然是行不通的。以这个站点(众多站点之一)为例:docs.microsoft.com/en-us/visualstudio/test/…。它清楚地说明了如何“链接到对象或库文件”。我错过了一些设置吗??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多