gpt4 book ai didi

c++ - Visual Studio 的对象文件

转载 作者:行者123 更新时间:2023-11-30 05:41:43 25 4
gpt4 key购买 nike

我有一个主文件main.cpp,其中包含myclass.h。我还有 myclass.omyclass.cpp。 Visual Studio 项目仅使用文件 main.cppmyclass.h.

这次编译:

#include "myclass.h"
int main()
{

return 0;
}

这不是:

#include "myclass.h"
int main()
{
myclass M{};

return 0;
}

这给出了链接错误 - 可能是因为 myclass.cppmyclass.o 未包含在项目中。

我宁愿只包含 myclass.o 因为编译这个类是非常有问题的。看 https://forum.qt.io/topic/8492/solved-cannot-get-quazip-test-to-work/3如果您对我使用的是哪个库感到好奇。

我的问题:我可以编译和使用仅包含头文件和目标文件的类,即根本没有 .cpp 文件吗?

谢谢!

最佳答案

Visual Studio 生成一个 .obj 文件作为它的中间格式。 gcc 和 gcc 是生成 .o 文件的。您可以将其包含在您的项目中,或者由于库很少有单个编译单元,您可以构建一个 .lib 文件并包含它。但是请注意,编译单元必须使用与您在项目中使用的完全相同的编译器开关(例如运行时库等)进行编译。简单地从源代码编译文件通常更简单。

我们也可以讨论使用 DLL,但这似乎超出了您的问题范围,并且还引入了调用约定的复杂性。

关于c++ - Visual Studio 的对象文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31061477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com